主题 : 高手,求解定时器问题。。。。 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 39221
精华: 0
发帖: 13
金钱: 75 两
威望: 15 点
综合积分: 26 分
注册时间: 2011-03-07
最后登录: 2016-01-29
楼主  发表于: 2011-05-23 19:49

 高手,求解定时器问题。。。。

void delay(U16 shijian)
{
    
    rTCFG0 &= ~0xff;
    rTCFG0 |= 24;            //prescaler = 24+1
    rTCFG1 &= ~0xf;         //mux = 1/2
    rTCFG1 |=0x0;        

    rTCNTB0 = shijian;
    //rTCMPB3 = 0;
    rTCON &= ~0x1f;
    rTCON |= 0x3;                         //启动计数
    rTCON &= ~2;
    while(rTCNTO3>0);
    rTCON &= ~0x1;    
}
     void Main(void)
{        
     rGPFCON = 0x5555;
    
       while(1)
       {
           rGPFDAT |= 0x3;
           delay(1500);
  
           rGPFDAT &= ~0x3;
           delay(20000);
    };

}
这个定时1us的程序一直出错,用示波器测只延时了4us,为什么?