125008301 发表于 2008-9-25 09:10:53

关于SMALL RTOS51的闪烁灯问题【恢复】

我写出自己第一个闪烁灯的程序却出现了意想不到的问题



我设计的闪烁灯的程序是:只要P1口有低电平来,P1口的LED灯

就会亮,否则即灭..





--------------------------------------------------------------------

#include "config.h"







void TaskA(void);



                

void init(void)

{

P1=P0=0xFF;

TCON=0;

TMOD=0x01;

TH0=(65536-(12000000/12)/600)/256;

TL0=(65536-(12000000/12)/600)%256;

ET0=1;

TR0=1;



}





void TaskA(void)

{

 while(1)

 {





        P1=0x00;

        OSWait(K_TMO,100);

        P1=0xff;

        OSWait(K_TMO,100);

        }





 }

 

 

void main(void)

{

   OSInit();

    init();

    OSTaskCreate(TaskA, NULL, 0);

    while(1)

    {

        PCON = PCON | 0x01;                     /* CPU进入休眠状态 */

    }



}



===============================================

上面的就是我写的程序 而且我按照规范都改好了应该改好的东西

1:#define OS_MAX_TASKS            1       /* 最大任务数1~16*/



2:#define OSWait_EN               1          /* 禁止(0)或允许(1)调用兼容函数OSWait  */



3:#define TICK_TIMER_SHARING      1           /* 定义进入多少次硬件中断为一次系统定时器软中断



4:#define EN_TIMER_SHARING        1           /* 禁止(0)或允许(1)定时器中断调用OSTimeTick() 



5:#define UserTickTimer() TF0=0;              /* 系统定时中断中调用的用户函数 



6:#define OS_TIME_ISR     1                          /* 系统定时器使用的中断       */



=================================================

我该改的东西都改好了.......为什么我的闪烁灯不正常呢  请大虾们指点迷津 



我已经搞了2天还是不行啊  谢谢..............



点击此处下载 ourdev_429403.rar(文件大小:56K) (原文件名:OS闪烁灯.rar) 

lzf713 发表于 2008-10-16 18:48:33

6:#define OS_TIME_ISR     1                          /* 系统定时器使用的中断       */ 

改为:

6:#define OS_TIME_ISR     0                         /* 系统定时器使用的中断       */ 

yl3721 发表于 2009-4-17 21:54:42

楼主,你的程序可以运行,但延迟时间有点长,OSWait(K_TMO,100)约延迟7秒(楼上的不要误导楼主,定时器怎么会使用外部中断0)
页: [1]
查看完整版本: 关于SMALL RTOS51的闪烁灯问题【恢复】