下面这段代码
MAX = 50;
for(i=0; i<MAX; i++)
{
while(F_100ms==0); // F_100ms在定时中断100ms中置一
F_100ms = 0;
Clear(i-1); // 一个清除上一次设置的函数
Set(i); // 本次设置
}
这样做没有问题,但是最后又一次设置没有清除,
于是我这么改:
for(i=0; i<MAX; i++)
{
Clear(i-1); // 一个清除上一次设置的函数
Set(i); // 本次设置
while(F_100ms==0); // F_100ms在定时中断100ms中置一
F_100ms = 0;
}
Clear(MAX-1);
问题出来了,不知道为什么 当循环到 i==1时,就卡在 while(F_100ms==0);过不去了,我跟踪一下,定时器会响应 F_100ms已经为1了。
我在这么改:
for(i=0; i<MAX; i++)
{
while(F_100ms==0); // F_100ms在定时中断100ms中置一
F_100ms = 0;
Clear(i-1); // 一个清除上一次设置的函数
Set(i); // 本次设置
}
while(F_100ms==0); // F_100ms在定时中断100ms中置一
F_100ms = 0;
Clear(MAX-1);
还是有问题,程序停在了退出for循环后的 while(F_100ms==0); 同样的 定时器会响应 F_100ms已经为1了。
请问这是什么问题? |