打印

帮忙看看 延时怎么出来的 一单为多少

[复制链接]
1774|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zqxat2007|  楼主 | 2011-10-27 20:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void TIME0_Init (void)                  //每10毫秒定时一次
{   
    TMOD =0x01;                    //工作在16位自动重装载方式
    TL0=-10*SYSCLK/1000/12;
    TH0=-10*SYSCLK/1000/12>>8;
    ET0=1;                              //打开定时器0中断            
    TR0=1;                              //允许中断            
}
void TIME0_ISR (void) interrupt 1 {     //采用寄存器组0
   
    TF0=0;                             //清掉中断标志      
    TL0=-10*SYSCLK/1000/12;   11059200
    TH0=-10*SYSCLK/1000/12>>8;   
            
//    LED=!LED;
    if(yanjsq<253) yanjsq++;            //延时记数器每1毫秒自动加1 // 不影响计数    看不懂????????
}
void RST_WDT(void){
  WDT_CONTR=0x3C;

}
void yan(uint n){                       //延时指定时间,单位为ms,但整型到10ms
    yanjsq=0;                           //最大延时为  ????????
    n=n/10;                             
    while(1){
        if(yanjsq>n) break;
        RST_WDT();                      //复位看门狗   
    }                                       
}
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

58

帖子

1

粉丝