才开始学习不久,最近再建立一个交通灯的系统,对于定时闪烁问题有一些疑问,求助大神
[复制链接]
首先,南北向红灯(LED1)亮10s,之后东西向绿灯(LED2)亮4s闪3s,接着东西向黄灯(LED3)闪3s***********
现在的问题程序执行到了 if((s>=14000)&&(s<17000)) 时无法脱离,LED2一直闪烁
诸位大神,这个应该怎么解决
void deng()
{
Timer0Init();
while(1)
{
if(TF0==1)
{
TF0=0;
TH0=0XFC;
TL0=0X18;
s++;
}
if((s>=0)&&(s<10000)) //10s
{
LED1=~LED1; //南北向红灯
}
if((s>=10000)&&(s<14000)) //4s
{
LED1=1;
LED2=~LED2; //东西向绿灯长亮4s
LED3=1;
}
if((s>=14000)&&(s<17000)) //3s
{
LED1=1;
LED3=1;
while((s>=14000)&&(s<17000))
{
LED2=~LED2; //东西向绿灯闪烁3s
delay(50000);
}
}
if((s>=17000)&&(s<20000))
{
a=0;
LED1=1;
LED2=1;
while((s>=17000)&&(s<20000))
{
LED3=~LED3; //东西向黄灯闪烁3s
delay(50000);
}
}
if(s==20000) //回到初始(41条)状态,循环
{
LED2=1;
LED3=1;
s=0;
}
}
}
|