|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
static int delayloopCount 400 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) } } 在这个延时程序中 如果将if 中的time delayloopcount 的值变大 延时的时间就越短 将delayloopcount=400 改为delayloopcount=4000 延时会变小 这是通过八段数码管演示看出来的 不理解 请高手指点 菜鸟敬上 |
|