|
一个关于延时的程序问题?(C,左值)没看懂,请高手指教。
[复制链接]
这段程序,俺不知道为什么会有延时功能,按俺的想法,是没办法实现了。菜鸟一只,先谢谢各位了
程序如下://--------------------------------------------------
// Description : Hold program for 0 ~ 65535 ms
// Input Value : usNum -- > Delay time
// Output Value : None
//--------------------------------------------------
void CTimerDelayXms(WORD usNum)
{
if(usNum)
{
bNotifyTimer0Int = _FALSE;
while(_TRUE)
{
if(bNotifyTimer0Int)
{
bNotifyTimer0Int = _FALSE;
if(--usNum) 这里是为什么啊???
TR0 = _ON;
else
return;
}
}
}
}
后来,俺在Keil C 中自己比照做个了雷同的,结果编译不过,说(--N不是左值)。请高手指点!
程序如下:
#include
#define N 10
#define _FALSE 0
#define _TRUE 1
#define _ON 1
bit bNotifyTimer0Int;
void CTimerDelayXms()
{
if(N)
{
bNotifyTimer0Int = _FALSE;
while(_TRUE)
{
if(bNotifyTimer0Int)
{
bNotifyTimer0Int = _FALSE;
if(--N) // 这里是咋回事呢????? ,如果是左值,具体又是怎么跑的呢?
TR0 = _ON;
else
return;
}
}
}
}
|
|