比如按设置键3秒进入设置模式, 和 在设置过程中如果5秒没有相应, 就退出设置模式, 这个计时怎么实现的? 我想了半天,都是不能用 空指令实现,如果用空指令,就会使 显示子程序停止工作几秒.
怎么办? 怎么实现啊.
void main(void)
{
....
ToEnableTimer1Interruption(); //允许定时器1中断
ToEnableTimer2Interruption(); //允许定时器2中断
Delayvalue=0;
while(key==0)//设置按钮按下
{
DelayNS();
flag=1;
}
flag=0;
if(Delayvalue> =3)
{
ToEnterSetMode(); //进入设置模式
}
....
}
void ToEnterSetMode(void)
{
Delayvalue=0;
flag=1;//允许记时
while(Delayvalue <=5)
{
WaitResponse();//等待响应
}
Delayvalue=0;
flag=0;
}
void WaitResponse()
{
...
if(TaskIsFinished) //设置任务完成
{
Delayvalue=6;
}
}
void Timer1(void)
{
...
if(flag==1);
{
Delayvalue=Delayvalue+1;
}
}
main()
{
........
if(TimeCt> =3)
执行设置模式
.......
}
void UserTask()
{
//one min task.
如果 One_Min_Task_True:
TimeCt++;
清One_Min_Task标志;
break;
//two min task.
.............
}