平台:STC12C5A60S2 外部晶振:12MHZ
开发环境:KEIL V900
UCOSII版本:V2.91
照搬杨屹大侠的移植源代码
针对我板子我做了如下修改:
#define OS_CRITICAL_METHOD 3u
#if OS_CRITICAL_METHOD == 3u
#define OS_ENTER_CRITICAL() {cpu_sr = IE&0x80;IE&=0x7F;}
#define OS_EXIT_CRITICAL() {IE |= cpu_sr;}
#endif
void InitTimer0(void) reentrant
{
TMOD=TMOD&0xF0;
TMOD=TMOD|0x01; //
TH0=0xB1; //
TL0=0xE0; // OS_TICKS_PER_SEC=50 即20MS溢出一次
ET0=1; //
TR0=1;
}
然后就是创建了一个闪灯任务
void Task_LED(void *p_arg)reentrant
{
p_arg = p_arg;
for(;;)
{
LeftFrontLight = 0;
OSTimeDlyHMSM(0, 0,0,200);
LeftFrontLight = 1;
OSTimeDlyHMSM(0, 0,0,200);
}
}
可是程序运行时,看不到闪灯效果,仿真用模拟逻辑分析仪发现LeftFrontLight 定义的端口高低变化几次后就不变化了,然后程序就死在OS_TaskIdle()空闲任务中
求求各位大侠帮帮忙!
51移植UCOSII.zip
(518.93 KB)
|