这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 44b0 高手进来看下,关于44b0的延时程序

共2条 1/1 1 跳转至

44b0 高手进来看下,关于44b0的延时程序

院士
2006-09-17 18:14:16     打赏
44b0 高手进来看下,关于44b0的延时程序



关键词: 高手     进来     看下     关于     延时     程序    

院士
2006-12-22 22:43:00     打赏
2楼
问 实在不理解下面这段代码是如何运作的,那位高手给指点一下撒
小弟先谢了
void Delay(int time)
// time=0: adjust the Delay function by WatchDog timer.//
// time>0: the number of loop time//
// 100us resolution.//
{
    int i,adjust=0;
    if(time==0)
    {
        time=200;
        adjust=1;
        delayLoopCount=400;
        rWTCON=((MCLK/1000000-1)<<8)|(2<<3);    // 1M/64,Watch-dog,nRESET,interrupt disable//
        rWTDAT=0xffff;
        rWTCNT=0xffff;     
        rWTCON=((MCLK/1000000-1)<<8)|(2<<3)|(1<<5); // 1M/64,Watch-dog enable,nRESET,interrupt disable //
    }
    for(;time>0;time--)
        for(i=0;i<delayLoopCount;i++);
    if(adjust==1)
    {
        rWTCON=((MCLK/1000000-1)<<8)|(2<<3);
        i=0xffff-rWTCNT;   //  1count/16us?????????//
        delayLoopCount=8000000/(i*64);    //400*100/(i*64/200)   //
    }
} 1: 对着注释讲得很清楚啦延时100us,如Delay(1)为延时100us,Delay(10)为延时1000us...
Delay(0)进行校准,使在各种工作时钟下都能满足延时100us的基准 2: 十分感谢阿南我已明白,十分感谢拉

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]