平台: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()空闲任务中
求求各位大侠帮帮忙!
|