在线时间26 小时
UID3092445
注册时间2015-1-15
NXP金币0
TA的每日心情 | 衰 2018-3-21 13:20 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]初来乍到
中级会员
 
- 积分
- 249
- 最后登录
- 2023-10-24
|
本帖最后由 zico1998 于 2015-8-25 17:08 编辑
我从网上找到的KL25/26的一个例子移植后,两个子任务运行一遍,然后就在空闲任务OS_TaskIdle里打转,请教是怎么回事。或者有哪位高手给份KL25的ucOSII的例子对照下。感谢!
主程序部分代码是:
int main(void)
{
OSInit();
OSTaskCreate(task0,(void *)0,(OS_STK*)&task0_stk[64-1],0);
OSStart();
return 0;
}
static void task0(void *pvalue)
{
pvalue=pvalue;
irq_off(); //关总中断
main_init(); //目标板初始化
#if(0<OS_TASK_STAT_EN)
// OSStatInit(); //任务统计初始化,不加,否则延迟处有问题
#endif
event_create(); //事件的建立,建立子任务的响应事件
task_create(); //系统多任务的建立(不用了,为空)
irq_enable(PIT_NUM);
irq_enable(UART0_NUM);
irq_enable(UART1_NUM);
irq_on(); //开总中断
while(1)
{
//参数:(1)建立任务(2)数据指针、传递给任务的参数(3)指向任务堆栈顶的指针(4)任务优先级
OSTaskCreate(task1,(void *)0,(OS_STK*)&task1_stk[63],2);
OSTaskCreate(task2,(void *)0,(OS_STK*)&task2_stk[63],3);
OSTaskSuspend(OS_PRIO_SELF);
}
}
static void task1(void *pvalue)
{
pvalue=pvalue; //为避免出现警告而用,函数里没用到,没实际意义
while(1)
{
GPIOE_PTOR |= (1<<3); //PTE3翻转
OSTimeDlyHMSM(0,0,0,500); //延迟0小时0分0秒500毫秒
}
}
static void task2(void *pvalue)
{
pvalue=pvalue;
while(1)
{
GPIOE_PTOR |= (1<<4); //PTE4翻转
OSTimeDlyHMSM(0,0,0,200); //延迟0小时0分0秒200毫秒
}
}
--------
已经解决,没设置好滴答
|
评分
-
查看全部评分
|