关于C51的延时程序
来源:百度知道 编辑:UC知道 时间:2024/06/04 04:10:43
void Delay1ms_CNT50US(n=5)
{
while(n--)
{
Cnt50us = 0;
while( Cnt50us < 20 )
{
_nop_();
_nop_();
}
}
}
这个程序是不是有问题啊?里面的while 是不是死循环啊?
{
while(n--)
{
Cnt50us = 0;
while( Cnt50us < 20 )
{
_nop_();
_nop_();
}
}
}
这个程序是不是有问题啊?里面的while 是不是死循环啊?
while (Cnt50us < 20)会成为死循环
修改:
void Delay1ms_CNT50US(n=5)
{
while(n--)
{
Cnt50us = 0;
while (Cnt50us < 20)
{
_nop_();
_nop_();
}//end of while
Cnt50us++;//添加的部分
}//end of while
}//end of main
楼上的回答不正确,仍为死循环!!!
应将Cnt50us++;添加到里面的while内部!
正解如下:
void Delay1ms_CNT50US(n=5)
{
while(n--)
{
Cnt50us = 0;
while (Cnt50us < 20)
{
_nop_();
_nop_();
Cnt50us++;
}
}
}
二楼的是对的~~
从下游戏不就行了
(Cnt50us=0)<20总是成立,总是进行while循环。