|
- void KeyScan(void) //系统按键扫描处理
- {
- keyValue=0;
- if(!pKeyDownIn)keyValue|=0x08; //P02=down
- if(!pKeyPowerIn)keyValue|=0x01; //P03=onoff
- if(!pKeyUpIn)keyValue|=0x02; //P11=up
- if(!pKeyFanIn)keyValue|=0x10; //P12=fan
- if(!pKeyModelIn)keyValue|=0x04; //P13=model
- if(keyValue==0x02 ||keyValue==0x08)keyLong=50;
- else if(keyValue==0x10 || keyValue==0x01)keyLong=150;
- else keyLong=250;
-
- if(keyValue==0x00)//按键无操作
- {
- keyCounter=0;
- bit_keyStatus=0;
- bit_keyLongUp=0; //按键释放后取消加减键连续执行
- bit_keyLongDown=0;
- if(!bit_keyValueStatus)
- {
- bit_keyshort=0;
- bit_keylong=0;
- }
- }
- else
- {
- keyCounter++;
- if(keyCounter>keyShort)
- {
- if(bit_keyStatus==0)
- {
- bit_keyValueStatus=1;
- bit_keyStatus=1;
- keyLastValue=keyValue;
- }
- if(bit_keyStatus&&bit_keyValueStatus)
- {
- if(bit_keyshort==1)
- {
- if(keyCounter>keyLong)
- {
- bit_keylong=1;
- bit_keyshort=0;
- keyLastValue=keyValue;
- }
- }
- else bit_keyshort=1;
- }
- }
- }
- KeyScanResult();
- }
- void KeyScanResult(void)
- {
- if(bit_keyshort==1) //短按键需等按键释放后才有效
- {
- if(bit_keyValueStatus==1&&bit_keyStatus==0)
- {
- bit_keyshort=0;
- if(keyLastValue==0x04)bit_keyMode=1;
- else if(keyLastValue==0x01)bit_keyOnOff=1;
- else if(keyLastValue==0x10)bit_keyFan=1;
- else if(keyLastValue==0x08)bit_keyDown=1;
- else if(keyLastValue==0x02)bit_keyUp=1;
- }
- }
-
- // 01 onoff 02 up 04 model 08 down 10 fan
- if(bit_keylong==1) //长按键一直按到按键接触时间后有效,然后释放
- {
- bit_keylong=0;
- if(bit_keyValueStatus==1&&bit_keyStatus==1)
- {
- bit_keyValueStatus=0;
- if(keyLastValue==0x01)bit_keySystemSet=1;//长按模式键6秒
- else if(keyLastValue==0x05)bit_keyLock=1;//按键锁
- else if(keyLastValue==0x04)bit_keyTiming=1;//定时关机
- else if(keyLastValue==0x10)bit_keyLongFan=1;
- else if(keyLastValue==0x0a)bit_keyProg=1;
- else if(keyLastValue==0x02)bit_keyLongUp=1; // 长按加键每200ms连续执行
- else if(keyLastValue==0x08)bit_keyLongDown=1;//长按减键每200ms连续执行
- else if(keyLastValue==0x11)bit_keyTest=1;
- }
- }
- }
复制代码 以上仅供参考,bit_keyValueStatus 有无按键触发,1为有,0为无
bit_keyStatus 指按键是否松开,0为松手,1为未松手
不知道为什么复制过来格式都没了,将就看
|
|