u8 KeyValue_backup;
u8 KeyValue_cur;//当前确定的value
u16 LoopCount;//时间间隔计数
void SetKeyValue(u8 value)//value可以是高低值0或1,也可以是旋钮开关0,1,2,3,,,n
{
if(KeyValue_backup!=value)
{
KeyValue_backup=value;//backup实时追随value值
LoopCount=0;
}
else if(KeyValue_backup==value)//backup与value值相同时,进入计数
{
LoopCount++;
if(LoopCount>20)//计数到20,按键有效
{KeyValue_cur=KeyValue_backup;
LoopCount=0;
}
else
delayms(20);//时间间隔20ms视实际需要修改,这里白白等待时间,在实时操作系统里面就会干其他事情
}
}