- //按键扫描及休眠控制. 20ms执行一次 主频4M
- void key_scan(void)
- {
- static u8 DownTimes;
- if( (DATA_BUF[0]!=0 ) || ( DATA_BUF[1]!=0 ) )
- {
- if(KeyPress_OnceFlag==1)
- {
- KeyPress_OnceFlag=0;
- DownTimes=0;
- //按键处理
- //...
- KeyValProcessing( GetValue(DATA_BUF[0],DATA_BUF[1]) );
- }
- //按下的时间计数
- DownTimes++;
- }
- else
- {
- KeyPress_OnceFlag=1;
- DownTimes=0;
- KeyOk_task=0;
- }
- //长按3000ms修改密码或者管理码
- if( ( DownTimes>=150 ) && ( keyOK == GetValue(DATA_BUF[0],DATA_BUF[1]) ) && (KeyOk_task==1) )
- {
- KeyOk_task=0;
- //长按3000ms Ok
- SysMode=1;
- remindTime(4);
- Lock_Time_Counter=1;
- KeyIntervalCnt=50;
- ChangeTimeSta=1;
- remindChange(1);
- }
- }
长按算法代码片段笔记
最新推荐文章于 2023-01-04 10:26:23 发布