uCOS启动后三个任务依次执行一遍,跑到空闲任务不能跳出
最近在S3C44B0公板上移植uCOS真是问题多多.昨天解决了下面这个问题
[求助]S3C44B0移植uCOS出问题困扰了很多天
http://www.ourdev.cn/thread-5470488-1-1.html
但新的问题又来了.
如题,我创建了三个任务(Task1,Task2,Task3),分别如下:
void
Task1(void *i)
{
for (;;)
{
LED0(1); //灯0亮
OSTimeDly(500);
LED0(0); //灯0灭
OSTimeDly(500);
}
}
void
Task2(void *i)
{
for (;;)
{
LED1(1); //灯1亮
OSTimeDly(1000);
LED1(0); //灯1灭
OSTimeDly(1000);
}
}
void
Task3(void *i)
{
for (;;)
{
LED2(1); //灯2亮
OSTimeDly(2000);
LED2(0); //灯2灭
OSTimeDly(2000);
}
}
现在的问题是:OSStart()后,任务1,2,3依次执行了一部分.就是仅仅灯0,1,2分别点亮了,但没有熄灭.调试发现
当灯2亮后进入OSTimeDly(2000); 程序然后依次进入voidOS_TaskStat (void *parg),再voidOS_TaskIdle (void *parg).
最后在空闲任务中一直无法跳出.
实在不知道哪里出了问题,特来万能的坛请教,先谢谢大家了. 没有心跳。 哈哈 我正在找没有心跳的原因 把有关系统时钟的寄存器查了个遍,发现原来是rTCNTB0给的初值太小,导致系统一直进中断,心跳太快了!
这个问题算是解决了.肯定还有下集... 持续关注 ShaoKn 发表于 2012-4-29 23:32 static/image/common/back.gif
把有关系统时钟的寄存器查了个遍,发现原来是rTCNTB0给的初值太小,导致系统一直进中断,心跳太快了!
这个 ...
rTCNTB0给的初值太小?
什么意思,楼主解释一下,我也遇到类似问题了
谢谢 abnerle 发表于 2012-6-4 20:41 static/image/common/back.gif
rTCNTB0给的初值太小?
什么意思,楼主解释一下,我也遇到类似问题了
我用定时器0产生定时中断为系统提供时钟节拍,但定时中断太频繁是不行的。uC/OS-II时钟节拍在10Hz~100Hz,即定时中断应为10ms~100ms. hbchf 发表于 2012-6-4 17:24 static/image/common/back.gif
持续关注
毕业设计已做完,就是一个简单的uC/OS-II移植,创建了三个任务,驱动TFT画线写字等。
还是有很多问题,但是懒得再往下做了。
页:
[1]