微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > TI-RTOS例程中,请问任务怎么实现切换呢,或者怎样改变任务的优先级

TI-RTOS例程中,请问任务怎么实现切换呢,或者怎样改变任务的优先级

时间:12-23 整理:3721RD 点击:

这是我写的代码

void task1_Fxn(UArg a0, UArg a1)
{
ti_sysbios_knl_Task_Handle Task111Handle;
while(1)
{
PIN_setOutputValue(PINHandle,PIN_ID(25),1);//LED 1
CPUdelay(5000000);
//Task_sleep(500/ Clock_tickPeriod);
Task_setPri(Task111Handle,0);
}

}

void task2_Fxn(UArg a0, UArg a1)
{
ti_sysbios_knl_Task_Handle Task111Handle;
while(1)
{
PIN_setOutputValue(PINHandle, PIN_ID(25),0); //LED 0
CPUdelay(5000000);
Task_setPri(Task111Handle,2);

}

}

/*====================================================================
函数名:主函数
传入参数:NONE
传出参数:NONE
调用:
创建:20160804 @向斌
=====================================================================*/
//const char echoPrompt[] = "\fEchoing characters:\r\n";

int main(void)
{
PIN_init(ledPinTable); //Gpio_ini
// UART_init(); //USart ini

Task_Params_init(&taskParams1); //预定义任务配置信息
taskParams1.stack = myTaskStack1; //初始化堆空间首地址
taskParams1.stackSize = sizeof(myTaskStack1); //初始化堆空间大小
taskParams1.priority=2; //任务优先级 0
taskParams1.instance->name = "task1_Fxn";
//taskParams1.arg0 = (UInt)1000000;
//Task_construct(&myTask1, task1_Fxn, &taskParams1, NULL);
Task_create(task1_Fxn,&taskParams1, NULL);


Task_Params_init(&taskParams2); //预定义任务配置信息
taskParams2.stack = myTaskStack2; //初始化堆空间首地址
taskParams2.stackSize = sizeof(myTaskStack2); //初始化堆空间大小
taskParams2.priority=1; //任务优先级 0
taskParams2.instance->name = "task2_Fxn";
//taskParams2.arg0 = (UInt)1000000;
//Task_construct(&myTask2, task2_Fxn, &taskParams2, NULL);
Task_create(task2_Fxn,&taskParams2, NULL);


BIOS_start();

}

编译过没有错误,该定义的都定义过了,请教大神们,如何实现任务切换,不胜感激!

求解答!

taskParams1.priority=2; 

这个指令来配置任务的优先级,你的代码已经配置两个任务不同优先级。

任务切换是根据优先级自动切换的,需要 Event_post()事件来启动优先任务的执行。

CC1310中有mutex_CC1350_LAUNCHXL_TI_CC1350F128 这个例程,多任务切换。你可以参考一下。

你好,请问mutex_CC1350_LAUNCHXL_TI_CC1350F128 这个例程在哪里啊,我找不到,我用的是TI-RTOS例程,帮忙谢谢啦

上一篇:cc1310信道问题
下一篇:关于EZ430-TMS37157

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top