/*============================================= * Copyright (c) Realtek Semiconductor Corporation, 2005 * All rights reserved. * ============================================ */ /*================= File Description ================= */ /** * @file * This file is for global structure's declaration. * * @author $Author: hillwang $ * @date $Date: 2006-08-01 11:54:47 +0800 (?熸?浜? 01 ?? 2006) $ * @version $Revision: 1142 $ * @ingroup input */ /** * @addtogroup input * @{ */ /*===================== Module dependency ================== */ #include "Core\Header\include.h" /*======================= Private Types ===================== */ /*======================== Definitions ====================== */ // Definitions of Key Repeat Start Time (Unit in sec) #define _KEY_REPEAT_START_TIME 0.4 #if _PCB_TYPE != _PCB_TEST //add 20091028 // Definitions of Key Mask #define _MENU_KEY_MASK 0x80 #define _SOURCE_KEY_MASK 0x40//#define _EXIT_KEY_MASK 0x40 #define _EXIT_KEY_MASK 0x40 #define _RIGHT_KEY_MASK 0x20 #define _LEFT_KEY_MASK 0x10 #define _UP_KEY_MASK 0x08 #define _DOWN_KEY_MASK 0x04 #define _POWER_KEY_MASK 0x02 #define _KEY7_MASK 0x01 #define _LCDONOFF_KEY_MASK 0x01 #define _POWER_RIGHT_KEY_MASK (_POWER_KEY_MASK | _RIGHT_KEY_MASK) #define _LEFT_RIGHT_KEY_MASK (_LEFT_KEY_MASK | _RIGHT_KEY_MASK) #define _POWER_MENU_KEY_MASK (_POWER_KEY_MASK | _MENU_KEY_MASK) #define _POWER_LEFT_RIGHT_KEY_MASK (_POWER_KEY_MASK | _LEFT_KEY_MASK | _RIGHT_KEY_MASK) #if(ISPHotKey == _TRUE) #define _MENU_SOURCE_ISPKEY_MASK (_MENU_KEY_MASK | _SOURCE_KEY_MASK) #endif #define _LEFT_DOWN_KEY_MASK (_LEFT_KEY_MASK | _DOWN_KEY_MASK) //provisional 既﹚ #define _RIGHT_UP_KEY_MASK (_RIGHT_KEY_MASK | _UP_KEY_MASK) //provisional 既﹚ #define _LEFT_DOWN_MENU_KEY_MASK (_LEFT_KEY_MASK | _MENU_KEY_MASK |_DOWN_KEY_MASK ) //provisional 既﹚ #define _RIGHT_UP_MENU_KEY_MASK (_RIGHT_KEY_MASK | _MENU_KEY_MASK | _UP_KEY_MASK) //provisional 既﹚ #if((_MCU_TYPE == _REALTEK_RTD2662_EMCU) && (_DEBUG_TOOL == _RS232)) //fjyang #define _UP_DOWN_KEY_MASK (_UP_KEY_MASK | _DOWN_KEY_MASK) #endif #endif /*========================== Variables ====================== */ BYTE idata ucKeyControl; BYTE idata ucKeyStatePrev; BYTE idata ucKeyStateCurr; /*=================== Local Functions Phototype ==============*/ bit CKeyScanReady(void); void CKeyScanReadyTimerEvent(void); void CKeyRepeatEnableTimerEvent(void); BYTE CKeyScan(void); UINT8 CKeyMessageConvProc(void); #if(ISPHotKey == _TRUE) static void EnableISP(void); #endif /*=========================== Functions ===================== */ // Description : Key scan process // Input Value : None // Output Value : Return message number in OsdMessage #ifdef LEFT_RIGHT_VOL_IN_ONE_KEY UINT8 xdata longtimes=0; UINT8 xdata Lastdata=0; UINT8 xdata EnterFlag=0; #endif UINT8 CKeyRead(void) { #if(_KEY_SCAN_MODE==_GPIO_MODE) UINT8 KeyLastValue=0; #endif // Clear the key message if (CKeyScanReady()) { // Store previous key state ucKeyStatePrev = ucKeyStateCurr; // Get current key state ucKeyStateCurr = CKeyScan(); #if (_KEY_SCAN_MODE==_GPIO_MODE) #ifdef POWER_LEDONOF_IN_ONE_KEY // if ((ucKeyStateCurr !=_SETUP_KEY_MASK)&&(ucKeyStateCurr!=_MENU_KEY_MASK)) //#else // if ((ucKeyStateCurr !=_POWER_KEY_MASK)&&(ucKeyStateCurr!=_LCDONOFF_KEY_MASK)) #endif { while (KeyLastValue!=ucKeyStateCurr) { KeyLastValue= CKeyScan(); CTimerDelayXms(8); ucKeyStateCurr = CKeyScan(); } } #endif #ifdef LEFT_RIGHT_VOL_IN_ONE_KEY if (1)//(GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT) { if (ucKeyStateCurr==_RIGHT_KEY_MASK&&(ucOsdState!=_VOLIMN_STATE)) { ucKeyStateCurr=_NONE_KEY_MESSAGE; // EnterFlag=1; Lastdata=_RIGHT_KEY_MASK; if (++longtimes>=20) { longtimes=0; EnterFlag=1; ucKeyStateCurr=_VOLINC_KEY_MASK; } } else if (ucKeyStateCurr==_RIGHT_KEY_MASK&&(ucOsdState==_VOLIMN_STATE)) { ucKeyStateCurr=_VOLINC_KEY_MASK; } else if (ucKeyStateCurr==_LEFT_KEY_MASK&&(ucOsdState!=_VOLIMN_STATE)) { ucKeyStateCurr=_NONE_KEY_MESSAGE; // EnterFlag=1; Lastdata=_LEFT_KEY_MASK; if (++longtimes>=20) { longtimes=1; EnterFlag=2; ucKeyStateCurr=_VOLDEC_KEY_MASK; } } else if (ucKeyStateCurr==_LEFT_KEY_MASK&&(ucOsdState==_VOLIMN_STATE)) { ucKeyStateCurr=_VOLDEC_KEY_MASK; } else { if (longtimes&&!EnterFlag) { longtimes=0; ucKeyStateCurr= Lastdata; EnterFlag=0; } else if (EnterFlag==1) { longtimes=0; ucKeyStateCurr= _NONE_KEY_MESSAGE; EnterFlag=0; } else { longtimes=0; EnterFlag=0; } } } #endif // Convert key state to key message, store in (ucKeyNotify) return CKeyMessageConvProc(); } return _NONE_KEY_MESSAGE; } // Description : Initial key status // Input Value : None // Output Value : None void CKeyInitial(void) { CLR_KEYSCANREADY(); CLR_KEYSCANSTART(); } //-------------------------------------------------- // Description : Key scan ready process. We wait 0.02 sec in order to keep the keypad debounce // Input Value : None // Output Value : None //-------------------------------------------------- bit CKeyScanReady(void) { if (GET_KEYSCANSTART() && GET_KEYSCANREADY()) { CLR_KEYSCANSTART(); CLR_KEYSCANREADY(); return _TRUE; } else if (!GET_KEYSCANSTART()) { // Wait 0.02 sec in order to keep the keypad debounce SET_KEYSCANSTART(); // CTimerReactiveTimerEvent(SEC(0.02), CKeyScanReadyTimerEvent); CTimerReactiveTimerEvent(SEC(0.06), CKeyScanReadyTimerEvent); return _FALSE; } else { return _FALSE; } } //-------------------------------------------------- // Description : Key scan ready timer event // Input Value : None // Output Value : None //-------------------------------------------------- void CKeyScanReadyTimerEvent(void) { SET_KEYSCANREADY(); } //-------------------------------------------------- // Description : Key repeat enable timer event // Input Value : None // Output Value : None //-------------------------------------------------- void CKeyRepeatEnableTimerEvent(void) { SET_KEYREPEATSTART(); ucKeyStatePrev = 0; ucKeyStateCurr = 0; } #if(_KEY_SCAN_MODE==_ADCX_MODE) //20080825 ccy modify #if (_PCB_TYPE == _PCB_TEST) BYTE CKeyADC1GetValue(void) { MCU_ADC_ACONTROL_FF08 |= 0x80; //start adc convert(STRT_ADC_ACKT=1) //wait minimam 12us for 5 channel pData[0] = 100; while (pData[0]--); //pData[0] = MCU_ADC_A0_CONVERT_RESULT_FF09; //ADC0 pData[0] = MCU_ADC_A1_CONVERT_RESULT_FF0A; //chnage adc0 to adc3 20090910 return pData[0]>>2; } BYTE CKeyADC2GetValue(void) { MCU_ADC_ACONTROL_FF08 |= 0x80; //start adc convert(STRT_ADC_ACKT=1) //wait minimam 12us for 5 channel pData[0] = 100; while (pData[0]--); pData[0] = MCU_ADC_A2_CONVERT_RESULT_FF0B; //ADC1 return pData[0]>>2; } BYTE CKeyADC3GetValue(void) { MCU_ADC_ACONTROL_FF08 |= 0x80; //start adc convert(STRT_ADC_ACKT=1) //wait minimam 12us for 5 channel pData[0] = 100; while (pData[0]--); pData[0] = MCU_ADC_A3_CONVERT_RESULT_FF0C; //ADC1 return pData[0]>>2; } #else BYTE CKeyScanGetValue(void) { MCU_ADC_ACONTROL_FF08 |= 0x80; //start adc convert(STRT_ADC_ACKT=1) //wait minimam 12us for 5 channel pData[0] = 100; while (pData[0]--); pData[0] = MCU_ADC_A2_CONVERT_RESULT_FF0B; //ADC2 return pData[0]>>2; } #endif #endif //-------------------------------------------------- // Description : Get key status // Input Value : None // Output Value : Return Key status //-------------------------------------------------- BYTE CKeyScan(void) { BYTE keystate = 0; #if (_KEY_SCAN_MODE==_GPIO_MODE) #ifdef POWER_LEDONOF_IN_ONE_KEY static BYTE lcd_power_sw=0; //jinsuo add for gpio scan key static BYTE power_key_dn=0; #endif #else #ifdef POWER_LEDONOF_IN_ONE_KEY static BYTE lcd_power_sw=0; //jinsuo add for gpio scan key #endif #endif #if(_KEY_SCAN_MODE==_ADCX_MODE) BYTE keyAdc1Val,keyAdc2Val,keyAdc3Val; #if (_PCB_TYPE == _PCB_TEST ) keyAdc1Val = CKeyADC1GetValue(); keyAdc2Val = CKeyADC2GetValue(); keyAdc3Val = CKeyADC3GetValue(); #if 0 // only for debug on 20091228 COsdFxClearText(1,0,3,3); COsdFxShowNumber(1, 0, keyAdc1Val, 0x33, _CP_RED); COsdFxShowNumber(2, 0, keyAdc2Val, 0x33, _CP_RED); COsdFxShowNumber(3, 0, keyAdc3Val, 0x33, _CP_RED); return 0; #endif //DebugPrintf("\n keyAdcValue0 = %d\n",keyAdcValue0); //DebugPrintf("\n keyAdcValue = %d\n",keyAdcValue); //COsdFxShowNumber(4, 0, keyAdcValue0, 0x33, _CP_RED); //COsdFxShowNumber(4, 4, keyAdcValue, 0x33, _CP_RED); #if _KEY_TYPE==_TYPE_KEY_INCARALL #ifdef HUARUIAN_968A //968_2660_KEYAB-v1.0 968a if ((keyAdc1Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc2Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc3Val >= NO_KEY-_ADC_TOLERANCE)) return 0; keyAdc1Val = CKeyADC1GetValue(); if (keyAdc1Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_ENTER_KEY_MASK; else if ((keyAdc1Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_RIGHT_KEY_MASK; else if ((keyAdc1Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_UP_KEY_MASK; else if ((keyAdc1Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SETUP_KEY_MASK; else if ((keyAdc1Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SUBTITLE_KEY_MASK; else if ((keyAdc1Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_STOP_KEY_MASK; else if ((keyAdc1Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_LCDONOFF_KEY_MASK; //=================== keyAdc2Val = CKeyADC2GetValue(); if (keyAdc2Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_DOWN_KEY_MASK; else if ((keyAdc2Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_AUDIO_KEY_MASK; else if ((keyAdc2Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_MENU_KEY_MASK; else if ((keyAdc2Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_VOLINC_KEY_MASK; else if ((keyAdc2Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_PBC_KEY_MASK; else if ((keyAdc2Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SOURCE_KEY_MASK; else if ((keyAdc2Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_VOLDEC_KEY_MASK; //==================== keyAdc3Val = CKeyADC3GetValue(); if (keyAdc3Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_LEFT_KEY_MASK; else if ((keyAdc3Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SDUSB_KEY_MASK; else if ((keyAdc3Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_PLAYPAUSE_KEY_MASK; // else if((keyAdc3Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) // keystate|=_SOURCE_KEY_MASK; //======================= #elif defined(DERUN_1012_SHARPLQ104) /* 正义盛 10。4 HS-128-KEYBA 2009.08.24 V1.0 20100503 ADD */ if ((keyAdc1Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc2Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc3Val >= NO_KEY-_ADC_TOLERANCE)) return 0; //=================== keyAdc1Val = CKeyADC1GetValue(); if (keyAdc1Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_SOURCE_KEY_MASK;//_SDUSB_KEY_MASK; else if ((keyAdc1Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_POWER_KEY_MASK; //no use else if ((keyAdc1Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_PLAYPAUSE_KEY_MASK;//_AUDIO_KEY_MASK; else if ((keyAdc1Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_MENU_KEY_MASK;//_SOURCE_KEY_MASK; else if ((keyAdc1Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_LCDONOFF_KEY_MASK; //ok else if ((keyAdc1Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SETUP_KEY_MASK;//_MENU_KEY_MASK; else if ((keyAdc1Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SDUSB_KEY_MASK;//_STOP_KEY_MASK; //=================== keyAdc2Val = CKeyADC2GetValue(); if (keyAdc2Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_CHDEC_KEY_MASK;//_VOLINC_KEY_MASK; else if ((keyAdc2Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_VOLINC_KEY_MASK;//_CHINC_KEY_MASK; else if ((keyAdc2Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_VOLDEC_KEY_MASK;//_CHDEC_KEY_MASK; else if ((keyAdc2Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_CHINC_KEY_MASK;//_VOLDEC_KEY_MASK; else if ((keyAdc2Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_ENTER_KEY_MASK; else if ((keyAdc2Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_RIGHT_KEY_MASK; else if ((keyAdc2Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_DOWN_KEY_MASK; //==================== keyAdc3Val = CKeyADC3GetValue(); if (keyAdc3Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_UP_KEY_MASK; else if ((keyAdc3Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_LEFT_KEY_MASK; if ((keyAdc3Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_TITLE_KEY_MASK;//_PLAYPAUSE_KEY_MASK; else if ((keyAdc3Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_STOP_KEY_MASK;//_SETUP_KEY_MASK; //==================== //==================== //==================== #elif defined(HUANA_AT09011)// HN-980-2660-K01 V1.0 10-06-21 if ((keyAdc1Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc2Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc3Val >= NO_KEY-_ADC_TOLERANCE)) return 0; keyAdc1Val = CKeyADC1GetValue(); if (keyAdc1Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_LCDONOFF_KEY_MASK; else if ((keyAdc1Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_DISPLAY_KEY_MASK; else if ((keyAdc1Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SKIPDOWN_KEY_MASK; else if ((keyAdc1Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_UP_KEY_MASK; else if ((keyAdc1Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SOURCE_KEY_MASK; else if ((keyAdc1Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SPEEDDOWN_KEY_MASK; else if ((keyAdc1Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SKIPUP_KEY_MASK; //=================== keyAdc2Val = CKeyADC2GetValue(); if (keyAdc2Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_PLAYPAUSE_KEY_MASK; else if ((keyAdc2Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_DOWN_KEY_MASK; else if ((keyAdc2Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_MENU_KEY_MASK; else if ((keyAdc2Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_VOLINC_KEY_MASK; else if ((keyAdc2Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_VOLDEC_KEY_MASK; else if ((keyAdc2Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_AUDIO_KEY_MASK; else if ((keyAdc2Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SETUP_KEY_MASK; //==================== keyAdc3Val = CKeyADC3GetValue(); if (keyAdc3Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_SPEEDUP_KEY_MASK; else if ((keyAdc3Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_RIGHT_KEY_MASK; else if ((keyAdc3Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_LEFT_KEY_MASK; else if ((keyAdc3Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_ENTER_KEY_MASK; //======================= #elif defined(HUANA_AT090_768KEY) if ((keyAdc1Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc2Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc3Val >= NO_KEY-_ADC_TOLERANCE)) return 0; keyAdc1Val = CKeyADC1GetValue(); if (keyAdc1Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_SOURCE_KEY_MASK; else if ((keyAdc1Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_RIGHT_KEY_MASK; else if ((keyAdc1Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_ENTER_KEY_MASK; else if ((keyAdc1Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_UP_KEY_MASK; else if ((keyAdc1Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SETUP_KEY_MASK; else if ((keyAdc1Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SDUSB_KEY_MASK; else if ((keyAdc1Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_MUTE_KEY_MASK; //=================== keyAdc2Val = CKeyADC2GetValue(); if (keyAdc2Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_VOLDEC_KEY_MASK; else if ((keyAdc2Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_VOLINC_KEY_MASK; //==================== keyAdc3Val = CKeyADC3GetValue(); if (keyAdc3Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_LEFT_KEY_MASK; else if ((keyAdc3Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_MENU_KEY_MASK; else if ((keyAdc3Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_DOWN_KEY_MASK; else if ((keyAdc3Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_PBC_KEY_MASK; else if ((keyAdc3Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_POWER_KEY_MASK; else if ((keyAdc3Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_STOP_KEY_MASK; else if ((keyAdc3Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_PLAYPAUSE_KEY_MASK; //======================= #elif defined(XIAOBAWANG_AT090) if ((keyAdc1Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc2Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc3Val >= NO_KEY-_ADC_TOLERANCE)) return 0; keyAdc1Val = CKeyADC1GetValue(); if (keyAdc1Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_PLAYPAUSE_KEY_MASK; else if ((keyAdc1Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SETUP_KEY_MASK; else if ((keyAdc1Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_MUTE_KEY_MASK; else if ((keyAdc1Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_DOWN_KEY_MASK; else if ((keyAdc1Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_RIGHT_KEY_MASK; else if ((keyAdc1Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_ENTER_KEY_MASK; //=================== keyAdc2Val = CKeyADC2GetValue(); if (keyAdc2Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_STOP_KEY_MASK; else if ((keyAdc2Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_PBC_KEY_MASK; else if ((keyAdc2Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_MENU_KEY_MASK; else if ((keyAdc2Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SDUSB_KEY_MASK; else if ((keyAdc2Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_POWER_KEY_MASK; else if ((keyAdc2Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_AUTOSEARCH_KEY_MASK; //==================== keyAdc3Val = CKeyADC3GetValue(); if (keyAdc3Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_SOURCE_KEY_MASK; else if ((keyAdc3Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_LEFT_KEY_MASK; else if ((keyAdc3Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_UP_KEY_MASK; //======================= #elif defined(YONGNAN_101PFW2B00) if ((keyAdc1Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc2Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc3Val >= NO_KEY-_ADC_TOLERANCE)) return 0; keyAdc1Val = CKeyADC1GetValue(); if (keyAdc1Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_SOURCE_KEY_MASK; else if ((keyAdc1Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SETUP_KEY_MASK; else if ((keyAdc1Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_STOP_KEY_MASK; else if ((keyAdc1Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_CHINC_KEY_MASK; // MENU UP IN ONE KEY else if ((keyAdc1Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_LEFT_KEY_MASK; else if ((keyAdc1Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_ENTER_KEY_MASK; //=================== keyAdc2Val = CKeyADC2GetValue(); if (keyAdc2Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_UP_KEY_MASK; else if ((keyAdc2Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_CHDEC_KEY_MASK; else if ((keyAdc2Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_VOLDEC_KEY_MASK; else if ((keyAdc2Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_VOLINC_KEY_MASK; else if ((keyAdc2Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_LCDONOFF_KEY_MASK; else if ((keyAdc2Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SDUSB_KEY_MASK; //==================== keyAdc3Val = CKeyADC3GetValue(); if (keyAdc3Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_RIGHT_KEY_MASK; else if ((keyAdc3Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_DOWN_KEY_MASK; else if ((keyAdc3Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_PLAYPAUSE_KEY_MASK; else if ((keyAdc3Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_AUDIO_KEY_MASK; else if ((keyAdc3Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_MENU_KEY_MASK; else if ((keyAdc3Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_TFT_MODE_MASK; //======================= #elif defined(DERUN_808_HSD100IFW1)||defined(DERUN_1012_CLAA102CN) if ((keyAdc1Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc2Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc3Val >= NO_KEY-_ADC_TOLERANCE)) return 0; keyAdc1Val = CKeyADC1GetValue(); if (keyAdc1Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_LEFT_KEY_MASK;//OK else if ((keyAdc1Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_UP_KEY_MASK; //OK else if ((keyAdc1Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SETUP_KEY_MASK;//_VOLINC_KEY_MASK; else if ((keyAdc1Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_MENU_KEY_MASK; //OK else if ((keyAdc1Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SDUSB_KEY_MASK;//_SOURCE_KEY_MASK; else if ((keyAdc1Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SOURCE_KEY_MASK;//_PLAYPAUSE_KEY_MASK; //=================== keyAdc2Val = CKeyADC2GetValue(); if (keyAdc2Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_DOWN_KEY_MASK; //OK else if ((keyAdc2Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_RIGHT_KEY_MASK;//_PBC_KEY_MASK; else if ((keyAdc2Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_ENTER_KEY_MASK;//_VOLDEC_KEY_MASK; //==================== keyAdc3Val = CKeyADC3GetValue(); if (keyAdc3Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_VOLINC_KEY_MASK; //OK else if ((keyAdc3Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_VOLDEC_KEY_MASK;//_MENU_KEY_MASK; else if ((keyAdc3Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_STOP_KEY_MASK;//_MENU_KEY_MASK; else if ((keyAdc3Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_PLAYPAUSE_KEY_MASK;//_MENU_KEY_MASK; #elif defined(HUARUIAN_968J) if ((keyAdc1Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc2Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc3Val >= NO_KEY-_ADC_TOLERANCE)) return 0; keyAdc1Val = CKeyADC1GetValue(); if (keyAdc1Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_VOLDEC_KEY_MASK; else if ((keyAdc1Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SUBTITLE_KEY_MASK; else if ((keyAdc1Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_RIGHT_KEY_MASK; else if ((keyAdc1Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_DOWN_KEY_MASK; else if ((keyAdc1Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_MENU_KEY_MASK; else if ((keyAdc1Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SOURCE_KEY_MASK; else if ((keyAdc1Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_VOLINC_KEY_MASK; //=================== keyAdc2Val = CKeyADC2GetValue(); if (keyAdc2Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_LEFT_KEY_MASK; else if ((keyAdc2Val>=_AD1_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD1_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SDUSB_KEY_MASK; else if ((keyAdc2Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SETUP_KEY_MASK; else if ((keyAdc2Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_AUDIO_KEY_MASK; else if ((keyAdc2Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_ENTER_KEY_MASK; else if ((keyAdc2Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_PBC_KEY_MASK; else if ((keyAdc2Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_UP_KEY_MASK; //==================== keyAdc3Val = CKeyADC3GetValue(); if (keyAdc3Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_STOP_KEY_MASK; else if ((keyAdc3Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_PLAYPAUSE_KEY_MASK; else if ((keyAdc3Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_LCDONOFF_KEY_MASK; //======================= #elif defined(XIAOBAWANG_101PFW2B00) if ((keyAdc1Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc2Val >= NO_KEY-_ADC_TOLERANCE)&&(keyAdc3Val >= NO_KEY-_ADC_TOLERANCE)) return 0; keyAdc1Val = CKeyADC1GetValue(); if (keyAdc1Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_LEFT_KEY_MASK; else if ((keyAdc1Val>=_AD2_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD2_KEY_DATA+_ADC_TOLERANCE)) keystate|=_UP_KEY_MASK; else if ((keyAdc1Val>=_AD3_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD3_KEY_DATA+_ADC_TOLERANCE)) keystate|=_MENU_KEY_MASK; else if ((keyAdc1Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SETUP_KEY_MASK; else if ((keyAdc1Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_AUTOSEARCH_KEY_MASK; else if ((keyAdc1Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc1Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SOURCE_KEY_MASK; //=================== keyAdc2Val = CKeyADC2GetValue(); if (keyAdc2Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_DOWN_KEY_MASK; else if ((keyAdc2Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_RIGHT_KEY_MASK; else if ((keyAdc2Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc2Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_ENTER_KEY_MASK; //==================== keyAdc3Val = CKeyADC3GetValue(); if (keyAdc3Val<=_AD0_KEY_DATA+_ADC_TOLERANCE) keystate |=_MUTE_KEY_MASK; else if ((keyAdc3Val>=_AD4_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD4_KEY_DATA+_ADC_TOLERANCE)) keystate|=_SDUSB_KEY_MASK; else if ((keyAdc3Val>=_AD5_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD5_KEY_DATA+_ADC_TOLERANCE)) keystate|=_STOP_KEY_MASK; else if ((keyAdc3Val>=_AD6_KEY_DATA-_ADC_TOLERANCE)&&(keyAdc3Val<=_AD6_KEY_DATA+_ADC_TOLERANCE)) keystate|=_PLAYPAUSE_KEY_MASK; #endif #endif //#if _KEY_TYPE==_TYPE_KEY_INCARALL #else keyAdcValue = CKeyScanGetValue(); //DebugPrintf("\nkey: %d\n", keyAdcValue); if (keyAdcValue>= NO_KEY-_ADC_TOLERANCE) keystate = 0; else if (keyAdcValue>= POWER_KEY-_ADC_TOLERANCE && keyAdcValue<= POWER_KEY+_ADC_TOLERANCE) keystate = keystate | _POWER_KEY_MASK; else if (keyAdcValue>= SOURCE_KEY-_ADC_TOLERANCE && keyAdcValue<= SOURCE_KEY+_ADC_TOLERANCE) keystate = keystate | _SOURCE_KEY_MASK; else if (keyAdcValue>= LEFT_KEY_DATA-_ADC_TOLERANCE && keyAdcValue<= LEFT_KEY_DATA+_ADC_TOLERANCE) keystate = keystate | _LEFT_KEY_MASK; else if (keyAdcValue>= RIGHT_KEY_DATA-_ADC_TOLERANCE && keyAdcValue<= RIGHT_KEY_DATA+_ADC_TOLERANCE) keystate = keystate | _RIGHT_KEY_MASK; else if (keyAdcValue>= DOWN_KEY_DATA-_ADC_TOLERANCE && keyAdcValue<= DOWN_KEY_DATA+_ADC_TOLERANCE) keystate = keystate | _DOWN_KEY_MASK; else if (keyAdcValue>= UP_KEY_DATA-_ADC_TOLERANCE && keyAdcValue<= UP_KEY_DATA+_ADC_TOLERANCE) keystate = keystate | _UP_KEY_MASK; else if (keyAdcValue<= MENU_KEY+_ADC_TOLERANCE) keystate = keystate | _MENU_KEY_MASK; //if (keystate) // DebugPrintf("\nkeystate=0x%x",keystate); #endif #endif #if (_KEY_SCAN_MODE==_GPIO_MODE) #ifdef POWER_LEDONOF_IN_ONE_KEY if ((lcd_power_sw<=6)&&(lcd_power_sw)&&!power_key_dn) { lcd_power_sw=0; #if 0 keystate = _SETUP_KEY_MASK; #else keystate = _LCDONOFF_KEY_MASK; #endif return keystate; } else if (!power_key_dn) { lcd_power_sw=0; // return 0; } #endif keystate = 0; //return keystate; // 4x4 array key, 16keys #ifdef KAIERSI_905 //set all key i/o to high level WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); //first: scan line, if find low level, id this, and keystate = key if (!ReadKey0()) { DebugPrintf("\n key1", 1); keystate = _SOURCE_KEY_MASK; } else if (!ReadKey1()) { DebugPrintf("\n key2", 1); keystate = _PLAYPAUSE_KEY_MASK; } else if (!ReadKey2()) { DebugPrintf("\n key3", 1); keystate = _AUDIO_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key4", 1); keystate = _AUDIO_KEY_MASK;//NOUSE } else { //second: loop scan line, set line1 to low level, and check cross line, if low level, keystate = key WriteKey0(0);//PIN51 WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey1()) { DebugPrintf("\n key5", 1); keystate = _STOP_KEY_MASK; return keystate; } else if (!ReadKey2()) { DebugPrintf("\n key6", 1); keystate = _DOWN_KEY_MASK; return keystate; } else if (!ReadKey3()) { DebugPrintf("\n key7", 1); keystate = _MENU_KEY_MASK; return keystate; } else { WriteKey0(1); WriteKey1(0); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key8", 1); keystate = _SDUSB_KEY_MASK; return keystate; } else if (!ReadKey2()) { DebugPrintf("\n key9", 1); #ifdef POWER_LEDONOF_IN_ONE_KEY power_key_dn=1; lcd_power_sw++; if (lcd_power_sw==28) { keystate|=_POWER_KEY_MASK; } else if (lcd_power_sw>=50) lcd_power_sw=29; #else DebugPrintf("\n key10", 1); keystate = _UP_KEY_MASK; return keystate; #endif } else if (!ReadKey3()) { DebugPrintf("\n key10", 1); keystate = _VOLINC_KEY_MASK; return keystate; } else { WriteKey0(1); WriteKey1(1); WriteKey2(0); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); keystate = _LEFT_KEY_MASK; return keystate; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); keystate = _ENTER_KEY_MASK; return keystate; } else if (!ReadKey3()) { DebugPrintf("\n key13", 1); keystate = _RIGHT_KEY_MASK; return keystate; } else WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(0); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); keystate = _SETUP_KEY_MASK;//IRCOPY; return keystate; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); keystate = _LCDONOFF_KEY_MASK; return keystate; } else if (!ReadKey2()) { DebugPrintf("\n key13", 1); keystate = _VOLDEC_KEY_MASK;//no use return keystate; } else { #ifdef POWER_LEDONOF_IN_ONE_KEY power_key_dn=0; #else return keystate; #endif } } } } #elif defined(HUANA_AT090) /* HN-908-2660-K01/K02-V101 10-07-05 */ //set all key i/o to high level WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); //first: scan line, if find low level, id this, and keystate = key if ((!ReadKey0())&&(!ReadKey1())) { DebugPrintf("\n key1", 1); keystate = _VOLINC_KEY_MASK; return keystate; } else if ((!ReadKey2())&&(!ReadKey3())) { DebugPrintf("\n key1", 1); keystate = _VOLDEC_KEY_MASK; return keystate; } else if (!ReadKey0()) { DebugPrintf("\n key1", 1); keystate = _DISPLAY_KEY_MASK; return keystate; } else if (!ReadKey1()) { DebugPrintf("\n key2", 1); keystate = _SOURCE_KEY_MASK; return keystate; } else if (!ReadKey2()) { DebugPrintf("\n key3", 1); keystate = _LCDONOFF_KEY_MASK; return keystate; } else if (!ReadKey3()) { DebugPrintf("\n key4", 1); keystate = _SETUP_KEY_MASK; return keystate; } else { //second: loop scan line, set line1 to low level, and check cross line, if low level, keystate = key WriteKey0(0);//PIN51 WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey1()) { DebugPrintf("\n key5", 1); keystate = _PLAYPAUSE_KEY_MASK; return keystate; } else if (!ReadKey2()) { DebugPrintf("\n key6", 1); keystate = _DOWN_KEY_MASK; return keystate; } else if (!ReadKey3()) { DebugPrintf("\n key7", 1); keystate = _MENU_KEY_MASK; return keystate; } else { WriteKey0(1); WriteKey1(0); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key8", 1); keystate = _AUDIO_KEY_MASK; return keystate; } else if (!ReadKey2()) { DebugPrintf("\n key9", 1); #ifdef POWER_LEDONOF_IN_ONE_KEY power_key_dn=1; lcd_power_sw++; if (lcd_power_sw==28) { keystate|=_POWER_KEY_MASK; } else if (lcd_power_sw>=50) lcd_power_sw=29; #else DebugPrintf("\n key10", 1); keystate = _UP_KEY_MASK; return keystate; #endif } else if (!ReadKey3()) { DebugPrintf("\n key10", 1); keystate = _SKIPDOWN_KEY_MASK;//NEXT return keystate; } else { WriteKey0(1); WriteKey1(1); WriteKey2(0); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); keystate = _LEFT_KEY_MASK; return keystate; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); keystate = _ENTER_KEY_MASK; return keystate; } else if (!ReadKey3()) { DebugPrintf("\n key13", 1); keystate = _RIGHT_KEY_MASK; return keystate; } else WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(0); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); keystate = _SPEEDDOWN_KEY_MASK;//FF; return keystate; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); keystate = _SPEEDUP_KEY_MASK;//FR return keystate; } else if (!ReadKey2()) { DebugPrintf("\n key13", 1); keystate = _SKIPUP_KEY_MASK;// PREV return keystate; } else { #ifdef POWER_LEDONOF_IN_ONE_KEY power_key_dn=0; #else return keystate; #endif } } } } #elif defined(DERUN_805_AT080) /* YT905-KEYA-V1.1 2009.10.19 */ //set all key i/o to high level WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); //first: scan line, if find low level, id this, and keystate = key if (!ReadKey0()) { DebugPrintf("\n key1", 1); keystate = _RIGHT_KEY_MASK; } else if (!ReadKey1()) { DebugPrintf("\n key2", 1); keystate = _DOWN_KEY_MASK; } else if (!ReadKey2()) { DebugPrintf("\n key3", 1); keystate = _ENTER_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key4", 1); keystate = _LEFT_KEY_MASK; } else { //second: loop scan line, set line1 to low level, and check cross line, if low level, keystate = key WriteKey0(0);//PIN51 WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey1()) { DebugPrintf("\n key5", 1); keystate = _SETUP_KEY_MASK; return keystate; } else if (!ReadKey2()) { DebugPrintf("\n key6", 1); keystate = _SDUSB_KEY_MASK; return keystate; } else if (!ReadKey3()) { DebugPrintf("\n key7", 1); keystate = _SOURCE_KEY_MASK; return keystate; } else { WriteKey0(1); WriteKey1(0); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key8", 1); keystate = _PLAYPAUSE_KEY_MASK; return keystate; } else if (!ReadKey2()) { DebugPrintf("\n key9", 1); #ifdef POWER_LEDONOF_IN_ONE_KEY power_key_dn=1; lcd_power_sw++; if (lcd_power_sw==28) { keystate|=_POWER_KEY_MASK; } else if (lcd_power_sw>=50) lcd_power_sw=29; #else DebugPrintf("\n key10", 1); keystate = _STOP_KEY_MASK; return keystate; #endif } else if (!ReadKey3()) { DebugPrintf("\n key10", 1); keystate = _VOLINC_KEY_MASK; return keystate; } else { WriteKey0(1); WriteKey1(1); WriteKey2(0); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); keystate = _MENU_KEY_MASK; return keystate; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); keystate = _LCDONOFF_KEY_MASK; return keystate; } else if (!ReadKey3()) { DebugPrintf("\n key13", 1); keystate = _CHINC_KEY_MASK; return keystate; } else WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(0); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); keystate = _CHDEC_KEY_MASK;//IRCOPY; return keystate; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); keystate = _VOLDEC_KEY_MASK; return keystate; } else if (!ReadKey2()) { DebugPrintf("\n key13", 1); keystate = _UP_KEY_MASK;//no use return keystate; } else { #ifdef POWER_LEDONOF_IN_ONE_KEY power_key_dn=0; #else return keystate; #endif } } } } #elif defined(HUANA_100IFW1_1081) //krs-PD101d v1.0 20100306 //set all key i/o to high level WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); //first: scan line, if find low level, id this, and keystate = key if (!ReadKey0()) { //DebugPrintf("\n key1", 1); //COsdFxClearText(1,0,3,3); //COsdFxShowNumber(1, 0, 1, 0x33, _CP_RED); return _SOURCE_KEY_MASK;//OK; } else if (!ReadKey1()) { DebugPrintf("\n key2", 1); return _SETUP_KEY_MASK;//OK; } else if (!ReadKey2()) { DebugPrintf("\n key3", 1); return _PBC_KEY_MASK; //OK } else if (!ReadKey3()) { DebugPrintf("\n key4", 1); return _SOURCE_KEY_MASK;// NOUSE ; } else { //second: loop scan line, set line1 to low level, and check cross line, if WriteKey0(0); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey1()) { DebugPrintf("\n key5", 1); return _LCDONOFF_KEY_MASK; } else if (!ReadKey2()) { DebugPrintf("\n key6", 1); return _DOWN_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key7", 1); return _SDUSB_KEY_MASK;// OK;// } else { WriteKey0(1); WriteKey1(0); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key8", 1); return _STOP_KEY_MASK; } else if (!ReadKey2()) { DebugPrintf("\n key9", 1); #ifdef POWER_LEDONOF_IN_ONE_KEY power_key_dn=1; lcd_power_sw++; if (lcd_power_sw==28) { return _POWER_KEY_MASK; } else if (lcd_power_sw>=50) lcd_power_sw=29; #else return _UP_KEY_MASK; #endif } else if (!ReadKey3()) { DebugPrintf("\n key10", 1); return _MENU_KEY_MASK;//OK; } else { WriteKey0(1); WriteKey1(1); WriteKey2(0); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); return _LEFT_KEY_MASK; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); return _ENTER_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key13", 1); return _RIGHT_KEY_MASK; } else { WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(0); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); return _VOLINC_KEY_MASK;//ok;; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); return _PLAYPAUSE_KEY_MASK;//USE; } else if (!ReadKey2()) { DebugPrintf("\n key13", 1); return _VOLDEC_KEY_MASK;//ok;; } else { #ifdef POWER_LEDONOF_IN_ONE_KEY power_key_dn=0; #else return keystate; #endif } } } } } #elif defined( TUOBU_AT090) /* 拓步 tb096-2660-key-v0.1 2010 06 11 */ //set all key i/o to high level WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); //first: scan line, if find low level, id this, and keystate = key if (!ReadKey0()) { //DebugPrintf("\n key1", 1); //COsdFxClearText(1,0,3,3); //COsdFxShowNumber(1, 0, 1, 0x33, _CP_RED); return _SOURCE_KEY_MASK;//USE; } else if (!ReadKey1()) { DebugPrintf("\n key2", 1); return _VOLINC_KEY_MASK;//USE; } else if (!ReadKey2()) { DebugPrintf("\n key3", 1); return _DOWN_KEY_MASK; //USE } else if (!ReadKey3()) { DebugPrintf("\n key4", 1); return _SOURCE_KEY_MASK;// NOUSE ; } else { //second: loop scan line, set line1 to low level, and check cross line, if WriteKey0(0); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey1()) { DebugPrintf("\n key5", 1); return _STOP_KEY_MASK;// USE; } else if (!ReadKey2()) { DebugPrintf("\n key6", 1); return _ENTER_KEY_MASK; //USE } else if (!ReadKey3()) { DebugPrintf("\n key7", 1); return _LEFT_KEY_MASK;// USE;// } else { WriteKey0(1); WriteKey1(0); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key8", 1); return _STOP_KEY_MASK;//NO USE; } else if (!ReadKey2()) { DebugPrintf("\n key9", 1); return _PLAYPAUSE_KEY_MASK; //USE } else if (!ReadKey3()) { DebugPrintf("\n key10", 1); return _RIGHT_KEY_MASK;//USE; } else { WriteKey0(1); WriteKey1(1); WriteKey2(0); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); return _SDUSB_KEY_MASK; //USE } else if (!ReadKey1()) { DebugPrintf("\n key10", 1); return _SETUP_KEY_MASK; //USE } else if (!ReadKey3()) { DebugPrintf("\n key13", 1); return _UP_KEY_MASK; //USE } else { WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(0); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); return _VOLDEC_KEY_MASK;//USE;; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); return _PLAYPAUSE_KEY_MASK;//NO USE; } else if (!ReadKey2()) { DebugPrintf("\n key13", 1); return _PBC_KEY_MASK;//NO USE;; } else { return keystate; } } } } } #elif defined( GUANWEI_AT090_902) // PD9902_KEYA(KEYB)_V1.0 2009.11.23 #include "customer\code\skyworth\key_pd9902.h)" #elif defined( XINHUACE_AT090) /* 新华测qw701-2660-key-v1.0 2010 06 30 */ //set all key i/o to high level WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); //first: scan line, if find low level, id this, and keystate = key if (!ReadKey0()) { //DebugPrintf("\n key1", 1); //COsdFxClearText(1,0,3,3); //COsdFxShowNumber(1, 0, 1, 0x33, _CP_RED); return _RIGHT_KEY_MASK;//USE; } else if (!ReadKey1()) { DebugPrintf("\n key2", 1); return _UP_KEY_MASK;//USE; } else if (!ReadKey2()) { DebugPrintf("\n key3", 1); return _ENTER_KEY_MASK; //USE } else if (!ReadKey3()) { DebugPrintf("\n key4", 1); return _DOWN_KEY_MASK;// NOUSE ; } else { //second: loop scan line, set line1 to low level, and check cross line, if WriteKey0(0); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey1()) { DebugPrintf("\n key5", 1); return _PLAYPAUSE_KEY_MASK;// USE; } else if (!ReadKey2()) { DebugPrintf("\n key6", 1); return _VOLDEC_KEY_MASK; //USE } else if (!ReadKey3()) { DebugPrintf("\n key7", 1); return _LEFT_KEY_MASK;// USE;// } else { WriteKey0(1); WriteKey1(0); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key8", 1); return _SDUSB_KEY_MASK;//USE; } else if (!ReadKey2()) { DebugPrintf("\n key9", 1); return _SOURCE_KEY_MASK; //USE } else if (!ReadKey3()) { DebugPrintf("\n key10", 1); return _SUBTITLE_KEY_MASK;//USE; } else { WriteKey0(1); WriteKey1(1); WriteKey2(0); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); return _AUDIO_KEY_MASK; //USE } else if (!ReadKey1()) { DebugPrintf("\n key10", 1); return _VOLINC_KEY_MASK; //USE } else if (!ReadKey3()) { DebugPrintf("\n key13", 1); return _PBC_KEY_MASK; //USE } else { WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(0); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); return _SETUP_KEY_MASK;//USE;; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); return _MENU_KEY_MASK;// USE; } else if (!ReadKey2()) { DebugPrintf("\n key13", 1); return _STOP_KEY_MASK;// USE;; } else { return keystate; } } } } } #elif defined( KANGMEI_N101L6) //set all key i/o to high level WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); //first: scan line, if find low level, id this, and keystate = key if (!ReadKey0()) { //DebugPrintf("\n key1", 1); //COsdFxClearText(1,0,3,3); //COsdFxShowNumber(1, 0, 1, 0x33, _CP_RED); return _SDUSB_KEY_MASK;//USE; } else if (!ReadKey1()) { DebugPrintf("\n key2", 1); return _VOLDEC_KEY_MASK;//USE; } else if (!ReadKey2()) { DebugPrintf("\n key3", 1); return _PBC_KEY_MASK; //USE } else if (!ReadKey3()) { DebugPrintf("\n key4", 1); return _SOURCE_KEY_MASK;// NOUSE ; } else { //second: loop scan line, set line1 to low level, and check cross line, if WriteKey0(0); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey1()) { DebugPrintf("\n key5", 1); return _AUDIO_KEY_MASK;// USE; } else if (!ReadKey2()) { DebugPrintf("\n key6", 1); return _DOWN_KEY_MASK; //USE } else if (!ReadKey3()) { DebugPrintf("\n key7", 1); return _SOURCE_KEY_MASK;// USE;// } else { WriteKey0(1); WriteKey1(0); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key8", 1); return _STOP_KEY_MASK;//USE; } else if (!ReadKey2()) { DebugPrintf("\n key9", 1); #ifdef POWER_LEDONOF_IN_ONE_KEY power_key_dn=1; lcd_power_sw++; if (lcd_power_sw==28) { return _POWER_KEY_MASK; } else if (lcd_power_sw>=50) lcd_power_sw=29; #else return _UP_KEY_MASK; //USE #endif } else if (!ReadKey3()) { DebugPrintf("\n key10", 1); return _VOLINC_KEY_MASK;//USE; } else { WriteKey0(1); WriteKey1(1); WriteKey2(0); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); return _LEFT_KEY_MASK; //USE } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); return _ENTER_KEY_MASK; //USE } else if (!ReadKey3()) { DebugPrintf("\n key13", 1); return _RIGHT_KEY_MASK; //USE } else { WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(0); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); return _SKIPDOWN_KEY_MASK;//USE;; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); return _PLAYPAUSE_KEY_MASK;//USE; } else if (!ReadKey2()) { DebugPrintf("\n key13", 1); return _SKIPUP_KEY_MASK;//USE;; } else { #ifdef POWER_LEDONOF_IN_ONE_KEY power_key_dn=0; #else return keystate; #endif } } } } } #elif defined( AODELI_968) //set all key i/o to high level WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); //first: scan line, if find low level, id this, and keystate = key if (!ReadKey0()) { DebugPrintf("\n key1", 1); keystate = _SOURCE_KEY_MASK; } else if (!ReadKey1()) { DebugPrintf("\n key2", 1); keystate = _PLAYPAUSE_KEY_MASK; } else if (!ReadKey2()) { DebugPrintf("\n key3", 1); keystate = _AUDIO_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key4", 1); keystate = _AUDIO_KEY_MASK;//NOUSE } else { //second: loop scan line, set line1 to low level, and check cross line, if low level, keystate = key WriteKey0(0);//PIN51 WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey1()) { DebugPrintf("\n key5", 1); keystate = _STOP_KEY_MASK; return keystate; } else if (!ReadKey2()) { DebugPrintf("\n key6", 1); keystate = _DOWN_KEY_MASK; return keystate; } else if (!ReadKey3()) { DebugPrintf("\n key7", 1); keystate = _MENU_KEY_MASK; return keystate; } else { WriteKey0(1); WriteKey1(0); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key8", 1); keystate = _SDUSB_KEY_MASK; return keystate; } else if (!ReadKey2()) { DebugPrintf("\n key9", 1); #ifdef POWER_LEDONOF_IN_ONE_KEY power_key_dn=1; lcd_power_sw++; if (lcd_power_sw==28) { keystate|=_POWER_KEY_MASK; } else if (lcd_power_sw>=50) lcd_power_sw=29; #else DebugPrintf("\n key10", 1); keystate = _UP_KEY_MASK; return keystate; #endif } else if (!ReadKey3()) { DebugPrintf("\n key10", 1); keystate = _VOLINC_KEY_MASK; return keystate; } else { WriteKey0(1); WriteKey1(1); WriteKey2(0); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); keystate = _LEFT_KEY_MASK; return keystate; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); keystate = _ENTER_KEY_MASK; return keystate; } else if (!ReadKey3()) { DebugPrintf("\n key13", 1); keystate = _RIGHT_KEY_MASK; return keystate; } else WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(0); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); keystate = _SETUP_KEY_MASK;//IRCOPY; return keystate; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); keystate = _LCDONOFF_KEY_MASK; return keystate; } else if (!ReadKey2()) { DebugPrintf("\n key13", 1); keystate = _VOLDEC_KEY_MASK;//no use return keystate; } else { #ifdef POWER_LEDONOF_IN_ONE_KEY power_key_dn=0; #else return keystate; #endif } } } } #elif defined(HUARUIAN_1010_N101L6) // PD101-KEY-V1.0-2010.3.6 //set all key i/o to high level WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); //first: scan line, if find low level, id this, and keystate = key if (!ReadKey0()) { //DebugPrintf("\n key1", 1); //COsdFxClearText(1,0,3,3); //COsdFxShowNumber(1, 0, 1, 0x33, _CP_RED); return _SDUSB_KEY_MASK;//OK; } else if (!ReadKey1()) { DebugPrintf("\n key2", 1); return _VOLDEC_KEY_MASK;//OK; } else if (!ReadKey2()) { DebugPrintf("\n key3", 1); return _TITLE_KEY_MASK; //OK } else if (!ReadKey3()) { DebugPrintf("\n key4", 1); return _SOURCE_KEY_MASK;// NOUSE ; } else { //second: loop scan line, set line1 to low level, and check cross line, if WriteKey0(0); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey1()) { DebugPrintf("\n key5", 1); return _AUDIO_KEY_MASK;// _STOP_KEY_MASK; } else if (!ReadKey2()) { DebugPrintf("\n key6", 1); return _DOWN_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key7", 1); return _SOURCE_KEY_MASK;// OK;// } else { WriteKey0(1); WriteKey1(0); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key8", 1); return _STOP_KEY_MASK;//_LCDONOFF_KEY_MASK; } else if (!ReadKey2()) { DebugPrintf("\n key9", 1); #ifdef POWER_LEDONOF_IN_ONE_KEY power_key_dn=1; lcd_power_sw++; if (lcd_power_sw==28) { return _POWER_KEY_MASK; } else if (lcd_power_sw>=50) lcd_power_sw=29; #else return _UP_KEY_MASK; #endif } else if (!ReadKey3()) { DebugPrintf("\n key10", 1); return _VOLINC_KEY_MASK;//OK; } else { WriteKey0(1); WriteKey1(1); WriteKey2(0); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); return _LEFT_KEY_MASK; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); return _ENTER_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key13", 1); return _RIGHT_KEY_MASK; } else { WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(0); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); return _SETUP_KEY_MASK;//ok;; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); return _PLAYPAUSE_KEY_MASK;//USE; } else if (!ReadKey2()) { DebugPrintf("\n key13", 1); return _MENU_KEY_MASK;//ok;; } else { #ifdef POWER_LEDONOF_IN_ONE_KEY power_key_dn=0; #else return keystate; #endif } } } } } #elif defined(XINHUACE_HSD100IFW1) // PD101-KEY-V1.0-2010.3.6 //set all key i/o to high level WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); //first: scan line, if find low level, id this, and keystate = key if (!ReadKey0()) { //DebugPrintf("\n key1", 1); //COsdFxClearText(1,0,3,3); //COsdFxShowNumber(1, 0, 1, 0x33, _CP_RED); return _LCDONOFF_KEY_MASK;//OK; } else if (!ReadKey1()) { DebugPrintf("\n key2", 1); return _VOLDEC_KEY_MASK;//OK; } else if (!ReadKey2()) { DebugPrintf("\n key3", 1); return _MENU_KEY_MASK; //OK } else if (!ReadKey3()) { DebugPrintf("\n key4", 1); return _SOURCE_KEY_MASK;// NOUSE ; } else { //second: loop scan line, set line1 to low level, and check cross line, if WriteKey0(0); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey1()) { DebugPrintf("\n key5", 1); return _SOURCE_KEY_MASK; } else if (!ReadKey2()) { DebugPrintf("\n key6", 1); return _DOWN_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key7", 1); return _AUDIO_KEY_MASK;// OK;// } else { WriteKey0(1); WriteKey1(0); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key8", 1); return _STOP_KEY_MASK; } else if (!ReadKey2()) { DebugPrintf("\n key9", 1); return _UP_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key10", 1); return _VOLINC_KEY_MASK;//OK; } else { WriteKey0(1); WriteKey1(1); WriteKey2(0); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); return _LEFT_KEY_MASK; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); return _ENTER_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key13", 1); return _RIGHT_KEY_MASK; } else { WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(0); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); return _SDUSB_KEY_MASK;//ok;; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); return _PLAYPAUSE_KEY_MASK;//USE; } else if (!ReadKey2()) { DebugPrintf("\n key13", 1); return _SETUP_KEY_MASK;//ok;; } else { return keystate; } } } } } #elif defined(ZHONGHENGHUIBO_9D) //set all key i/o to high level WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); //first: scan line, if find low level, id this, and keystate = key if (!ReadKey0()) { DebugPrintf("\n key1", 1); keystate = _LCDONOFF_KEY_MASK;//_SOURCE_KEY_MASK; } else if (!ReadKey1()) { DebugPrintf("\n key2", 1); keystate = _PBC_KEY_MASK;//_PLAYPAUSE_KEY_MASK; } else if (!ReadKey2()) { DebugPrintf("\n key3", 1); keystate = _SETUP_KEY_MASK;//_AUDIO_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key4", 1); keystate = _AUDIO_KEY_MASK;//NOUSE } else { //second: loop scan line, set line1 to low level, and check cross line, if low level, keystate = key WriteKey0(0);//PIN51 WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey1()) { DebugPrintf("\n key5", 1); keystate =_SOURCE_KEY_MASK;//_STOP_KEY_MASK; return keystate; } else if (!ReadKey2()) { DebugPrintf("\n key6", 1); keystate = _DOWN_KEY_MASK; return keystate; } else if (!ReadKey3()) { DebugPrintf("\n key7", 1); keystate = _PLAYPAUSE_KEY_MASK;//_MENU_KEY_MASK; return keystate; } else { WriteKey0(1); WriteKey1(0); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key8", 1); keystate = _SDUSB_KEY_MASK; return keystate; } else if (!ReadKey2()) { DebugPrintf("\n key9", 1); #ifdef POWER_LEDONOF_IN_ONE_KEY power_key_dn=1; lcd_power_sw++; if (lcd_power_sw==28) { keystate|=_POWER_KEY_MASK; } else if (lcd_power_sw>=50) lcd_power_sw=29; #else DebugPrintf("\n key10", 1); keystate = _UP_KEY_MASK; return keystate; #endif } else if (!ReadKey3()) { DebugPrintf("\n key10", 1); keystate = _VOLINC_KEY_MASK; return keystate; } else { WriteKey0(1); WriteKey1(1); WriteKey2(0); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); keystate = _LEFT_KEY_MASK; return keystate; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); keystate = _ENTER_KEY_MASK; return keystate; } else if (!ReadKey3()) { DebugPrintf("\n key13", 1); keystate = _RIGHT_KEY_MASK; return keystate; } else WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(0); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); keystate = _AUDIO_KEY_MASK;//_SETUP_KEY_MASK;//IRCOPY; return keystate; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); keystate = _VOLDEC_KEY_MASK;//_LCDONOFF_KEY_MASK; return keystate; } else if (!ReadKey2()) { DebugPrintf("\n key13", 1); keystate = _STOP_KEY_MASK;//_VOLDEC_KEY_MASK;//no use return keystate; } else { #ifdef POWER_LEDONOF_IN_ONE_KEY power_key_dn=0; #else return keystate; #endif } } } } #elif defined(ZHONGHENGHUIBO_100IFW1) // PD101-KEY-V1.0-2010.3.6 //set all key i/o to high level WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); //first: scan line, if find low level, id this, and keystate = key if (!ReadKey0()) { //DebugPrintf("\n key1", 1); //COsdFxClearText(1,0,3,3); //COsdFxShowNumber(1, 0, 1, 0x33, _CP_RED); return _SOURCE_KEY_MASK;//_SDUSB_KEY_MASK;//OK; } else if (!ReadKey1()) { DebugPrintf("\n key2", 1); return _VOLDEC_KEY_MASK;//OK; } else if (!ReadKey2()) { DebugPrintf("\n key3", 1); return _PLAYPAUSE_KEY_MASK;//_TITLE_KEY_MASK; //OK } else if (!ReadKey3()) { DebugPrintf("\n key4", 1); return _SOURCE_KEY_MASK;// NOUSE ; } else { //second: loop scan line, set line1 to low level, and check cross line, if WriteKey0(0); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey1()) { DebugPrintf("\n key5", 1); return _STOP_KEY_MASK;//_AUDIO_KEY_MASK; } else if (!ReadKey2()) { DebugPrintf("\n key6", 1); return _DOWN_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key7", 1); return _SETUP_KEY_MASK;//_SOURCE_KEY_MASK;// OK;// } else { WriteKey0(1); WriteKey1(0); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key8", 1); return _PBC_KEY_MASK;//_STOP_KEY_MASK;//_LCDONOFF_KEY_MASK; } else if (!ReadKey2()) { DebugPrintf("\n key9", 1); return _UP_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key10", 1); return _VOLINC_KEY_MASK;//OK; } else { WriteKey0(1); WriteKey1(1); WriteKey2(0); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); return _LEFT_KEY_MASK; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); return _ENTER_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key13", 1); return _RIGHT_KEY_MASK; } else { WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(0); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); return _LCDONOFF_KEY_MASK;//_SETUP_KEY_MASK;//ok;; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); return _AUDIO_KEY_MASK;//_PLAYPAUSE_KEY_MASK;//USE; } else if (!ReadKey2()) { DebugPrintf("\n key13", 1); return _SDUSB_KEY_MASK;//_MENU_KEY_MASK;//ok;; } else { return keystate; } } } } } #else //set all key i/o to high level WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); //first: scan line, if find low level, id this, and keystate = key if (!ReadKey0()) { //DebugPrintf("\n key1", 1); //COsdFxClearText(1,0,3,3); //COsdFxShowNumber(1, 0, 1, 0x33, _CP_RED); return _SOURCE_KEY_MASK;//_SDUSB_KEY_MASK;//OK; } else if (!ReadKey1()) { DebugPrintf("\n key2", 1); return _VOLDEC_KEY_MASK;//OK; } else if (!ReadKey2()) { DebugPrintf("\n key3", 1); return _PLAYPAUSE_KEY_MASK;//_TITLE_KEY_MASK; //OK } else if (!ReadKey3()) { DebugPrintf("\n key4", 1); return _SOURCE_KEY_MASK;// NOUSE ; } else { //second: loop scan line, set line1 to low level, and check cross line, if WriteKey0(0); WriteKey1(1); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey1()) { DebugPrintf("\n key5", 1); return _STOP_KEY_MASK;//_AUDIO_KEY_MASK; } else if (!ReadKey2()) { DebugPrintf("\n key6", 1); return _DOWN_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key7", 1); return _SETUP_KEY_MASK;//_SOURCE_KEY_MASK;// OK;// } else { WriteKey0(1); WriteKey1(0); WriteKey2(1); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key8", 1); return _PBC_KEY_MASK;//_STOP_KEY_MASK;//_LCDONOFF_KEY_MASK; } else if (!ReadKey2()) { DebugPrintf("\n key9", 1); return _UP_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key10", 1); return _VOLINC_KEY_MASK;//OK; } else { WriteKey0(1); WriteKey1(1); WriteKey2(0); WriteKey3(1); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); return _LEFT_KEY_MASK; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); return _ENTER_KEY_MASK; } else if (!ReadKey3()) { DebugPrintf("\n key13", 1); return _RIGHT_KEY_MASK; } else { WriteKey0(1); WriteKey1(1); WriteKey2(1); WriteKey3(0); CTimerDelayXms(1); if (!ReadKey0()) { DebugPrintf("\n key11", 1); return _LCDONOFF_KEY_MASK;//_SETUP_KEY_MASK;//ok;; } else if (!ReadKey1()) { DebugPrintf("\n key12", 1); return _AUDIO_KEY_MASK;//_PLAYPAUSE_KEY_MASK;//USE; } else if (!ReadKey2()) { DebugPrintf("\n key13", 1); return _SDUSB_KEY_MASK;//_MENU_KEY_MASK;//ok;; } else { return keystate; } } } } } #endif/* KAIERSI_905*/ #endif /*#if (_KEY_SCAN_MODE==_GPIO_MODE)*/ return keystate; } //-------------------------------------------------- // Description : Convert keypad status into key message, stores in ucKeyNotify // Input Value : None // Output Value : None //-------------------------------------------------- UINT8 CKeyMessageConvProc(void) { UINT8 ucKeyMessage = _NONE_KEY_MESSAGE; switch (ucKeyStateCurr) { case _POWER_KEY_MASK: ucKeyMessage = _POWER_KEY_MESSAGE; break; case _LCDONOFF_KEY_MASK: ucKeyMessage = _LCDONOFF_KEY_MESSAGE; break; case _MENU_KEY_MASK: ucKeyMessage = _MENU_KEY_MESSAGE; break; case _SOURCE_KEY_MASK: ucKeyMessage = _SOURCE_KEY_MESSAGE; break; case _TFT_MODE_MASK : ucKeyMessage = _PICT_MODE_KEY_MESSAGE; break; case _VOLDEC_KEY_MASK: #ifdef YONGNAN_101PFW2B00 if ((ucOsdState!=_MAINMENU_STATE)||(ucOsdState==_VOLIMN_STATE)) ucKeyMessage = _VOLUME_DEC_MESSAGE; else ucKeyMessage = _LEFT_KEY_MESSAGE; #else ucKeyMessage = _VOLUME_DEC_MESSAGE; #endif break; case _VOLINC_KEY_MASK: #ifdef YONGNAN_101PFW2B00 if ((ucOsdState!=_MAINMENU_STATE)||(ucOsdState==_VOLIMN_STATE)) ucKeyMessage = _VOLUME_INC_MESSAGE; else ucKeyMessage = _RIGHT_KEY_MESSAGE; #else ucKeyMessage = _VOLUME_INC_MESSAGE; #endif break; case _CHDEC_KEY_MASK: #ifdef YONGNAN_101PFW2B00 if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_VIDEO_TV_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) ucKeyMessage = _CHANNEL_DEC_MESSAGE; else ucKeyMessage = _DOWN_KEY_MESSAGE; #else ucKeyMessage = _CHANNEL_DEC_MESSAGE; #endif break; case _CHINC_KEY_MASK: #ifdef YONGNAN_101PFW2B00 if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_VIDEO_TV_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) ucKeyMessage = _CHANNEL_INC_MESSAGE; else ucKeyMessage = _UP_KEY_MESSAGE; #else ucKeyMessage = _CHANNEL_INC_MESSAGE; #endif break; case _MUTE_KEY_MASK: ucKeyMessage = _MUTE_KEY_MESSAGE; break; case _AUTOSEARCH_KEY_MASK: ucKeyMessage = _AUTOSEARCH_KEY_MESSAGE; break; case _REPEAT_KEY_MASK: ucKeyMessage = _INVALID_KEY_MESSAGE; break; case _ENTER_KEY_MASK: ucKeyMessage = _INVALID_KEY_MESSAGE; break; case _TITLE_KEY_MASK: ucKeyMessage = _INVALID_KEY_MESSAGE; break; case _SETUP_KEY_MASK: #if defined(TUOBU_AT090)||defined(ZHONGHENGHUIBO_100IFW1) if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE||ucOsdState==_MAINMENU_STATE||ucOsdState==_VOLIMN_STATE)) ucKeyMessage = _INVALID_KEY_MESSAGE; else ucKeyMessage = _MENU_KEY_MESSAGE; #else ucKeyMessage = _INVALID_KEY_MESSAGE; #endif break; case _SDUSB_KEY_MASK: ucKeyMessage = _INVALID_KEY_MESSAGE; break; case _STOP_KEY_MASK: ucKeyMessage = _INVALID_KEY_MESSAGE; break; case _PLAYPAUSE_KEY_MASK: ucKeyMessage = _INVALID_KEY_MESSAGE; break; case _PBC_KEY_MASK: case _SKIPUP_KEY_MASK: case _SKIPDOWN_KEY_MASK: case _SPEEDUP_KEY_MASK: case _SPEEDDOWN_KEY_MASK: case _SUBTITLE_KEY_MASK: case _CAPTION_KEY_MASK: ucKeyMessage = _INVALID_KEY_MESSAGE; break; case _RIGHT_KEY_MASK: #if _KEY_TYPE != _TYPE_KEY_XBW if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) ucKeyMessage = _INVALID_KEY_MESSAGE; else #endif ucKeyMessage = _RIGHT_KEY_MESSAGE; break; case _LEFT_KEY_MASK: #if _KEY_TYPE != _TYPE_KEY_XBW if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) ucKeyMessage = _INVALID_KEY_MESSAGE; else #endif ucKeyMessage = _LEFT_KEY_MESSAGE; break; case _UP_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&ucOsdState==_IDLE_STATE) ucKeyMessage = _INVALID_KEY_MESSAGE; //#ifndef DERUN_REMOTE//_KEY_TYPE == _TYPE_KEY_BF||_KEY_TYPE == _TYPE_KEY_HS1081_2||_KEY_TYPE ==_TYPE_KEY_BB||_KEY_TYPE ==_TYPE_KEY_XBW #if 1//def DERUN_1012_CLAA102CN DERUN_808_HSD100IFW1 else if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_VIDEO_TV_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) ucKeyMessage = _CHANNEL_INC_MESSAGE; #endif else ucKeyMessage = _UP_KEY_MESSAGE; break; case _DOWN_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&ucOsdState==_IDLE_STATE) ucKeyMessage = _INVALID_KEY_MESSAGE; //#ifndef DERUN_REMOTE// _KEY_TYPE == _TYPE_KEY_BF||_KEY_TYPE == _TYPE_KEY_HS1081_2||_KEY_TYPE ==_TYPE_KEY_BB||_KEY_TYPE ==_TYPE_KEY_XBW #if 1//def DERUN_1012_CLAA102CN DERUN_808_HSD100IFW1 else if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_VIDEO_TV_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) ucKeyMessage = _CHANNEL_DEC_MESSAGE; #endif else ucKeyMessage = _DOWN_KEY_MESSAGE; break; case _AUDIO_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_VIDEO_TV_PORT&&ucOsdState == _IDLE_STATE) ucKeyMessage = _TV_AUDIO_SYSTEM_KEY_MESSAGE; else ucKeyMessage = _INVALID_KEY_MESSAGE; break; case _DISPLAY_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT) ucKeyMessage = _INVALID_KEY_MESSAGE; else ucKeyMessage = _DISPLAY_KEY_MESSAGE; break; default: CLR_KEYREPEATSTART(); CTimerCancelTimerEvent(CKeyRepeatEnableTimerEvent); CLR_KEYREPEATENABLE(); return _NONE_KEY_MESSAGE; } // if((ucKeyStatePrev != ucKeyStateCurr)||(_KEY7_MASK == ucKeyStateCurr)) { if (ucKeyStatePrev != ucKeyStateCurr) { CLR_KEYREPEATSTART(); SET_KEYREPEATENABLE(); if (ucKeyStateCurr == _SOURCE_KEY_MASK) CTimerActiveTimerEvent(SEC(1.5),CKeyRepeatEnableTimerEvent); else if (ucKeyStateCurr == _POWER_KEY_MASK) CTimerActiveTimerEvent(SEC(1),CKeyRepeatEnableTimerEvent); #if _KEY_TYPE==_TYPE_KEY_XBW else if (ucKeyStateCurr == _LEFT_KEY_MASK||ucKeyStateCurr == _RIGHT_KEY_MASK) CTimerActiveTimerEvent(SEC(0.1),CKeyRepeatEnableTimerEvent); #endif else CTimerActiveTimerEvent(SEC(_KEY_REPEAT_START_TIME),CKeyRepeatEnableTimerEvent); ucKeyPadMessage = ucKeyMessage; switch (ucKeyStateCurr) { case _ENTER_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_PLAY_ENTER); break; case _RIGHT_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_RIGHT_K); break; case _LEFT_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_LEFT_K); break; case _UP_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_UP_K); break; case _DOWN_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_DOWN_K); break; case _TITLE_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) //Send_Key(IR_TITLE_MENU); Send_Key(IR_ROOT_MENU); break; case _AUDIO_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_AUDIO_VCD); break; case _SETUP_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_SETUP); break; case _SDUSB_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_MUTE); break; case _DISPLAY_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_DISPLAY); break; case _STOP_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_STOP); break; case _PLAYPAUSE_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_PLAY_PAUSE); break; case _REPEAT_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_REPEAT); break; case _CAPTION_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_SUB_TITLE); break; case _PBC_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_ROOT_MENU); break; case _SUBTITLE_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_SUB_TITLE); break; case _SKIPUP_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_PREV); break; case _SKIPDOWN_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_NEXT); break; case _SPEEDDOWN_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_FF); break; case _SPEEDUP_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_FR); break; } return ucKeyMessage; } else { if (GET_KEYREPEATENABLE()) { if (GET_KEYREPEATSTART()) { CTimerReactiveTimerEvent(SEC(0.1),CKeyRepeatEnableTimerEvent); CLR_KEYREPEATSTART(); ucKeyPadMessage = ucKeyMessage; switch (ucKeyStateCurr) { case _ENTER_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_PLAY_ENTER); break; case _RIGHT_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_RIGHT_K); break; case _LEFT_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_LEFT_K); break; case _UP_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_UP_K); break; case _DOWN_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_DOWN_K); break; case _TITLE_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) //Send_Key(IR_TITLE_MENU); Send_Key(IR_ROOT_MENU); break; case _AUDIO_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_AUDIO_VCD); break; case _SETUP_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_SETUP); break; case _SDUSB_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_MUTE); break; case _DISPLAY_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_DISPLAY); break; case _STOP_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_STOP); break; case _PLAYPAUSE_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_PLAY_PAUSE); break; case _REPEAT_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_REPEAT); break; case _CAPTION_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_SUB_TITLE); break; case _PBC_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_ROOT_MENU); break; case _SUBTITLE_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_SUB_TITLE); break; case _SKIPUP_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_PREV); break; case _SKIPDOWN_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_NEXT); break; case _SPEEDDOWN_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_FF); break; case _SPEEDUP_KEY_MASK: if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_YPBPR_A0_PORT&&(ucOsdState==_IDLE_STATE||ucOsdState==_MUTE_STATE)) Send_Key(IR_FR); break; } return ucKeyMessage; } else { CLR_KEYREPEATSTART(); CTimerCancelTimerEvent(CKeyRepeatEnableTimerEvent); // ucKeyMessage = _KEY7_MASK; ucKeyPadMessage = _REPEAT_KEY_MESSAGE; #if _KEY_TYPE==_TYPE_KEY_XBW if (ucKeyStateCurr==_RIGHT_KEY_MASK) { return _VOLUME_INC_MESSAGE; } else if (ucKeyStateCurr==_LEFT_KEY_MASK) { return _VOLUME_DEC_MESSAGE; } else #endif return _REPEAT_KEY_MESSAGE; } } } ucKeyPadMessage = _NONE_KEY_MESSAGE; return _NONE_KEY_MESSAGE; } #if(ISPHotKey == _TRUE) sfr WINBOND_CHPENR = 0xf6; sfr WINBOND_CHPCON = 0x9F; sfr WINBOND_TA = 0xC7; static void EnableISP(void) { //P4 = 0x00; //pwPowerOffSystem(); WINBOND_CHPENR = 0x87; // write enable WINBOND_CHPENR = 0x59; // write enable WINBOND_CHPCON = 0x03; // bank=4k,flash mode (LDSEL=1,ENP=1) TL0 = 0xfe; TH0 = 0xff; TR0 = 1; PCON = PCON | 0x01; // enter idle mode WINBOND_TA = 0xaa; // write enable WINBOND_TA = 0x55; // write enable WINBOND_CHPCON = 0x03; // bank=4k,flash mode (LDSEL=1,ENP=1) TL0 = 0xfe; TH0 = 0xff; TR0 = 1; PCON = PCON | 0x01; // enter idle mode // while(1) ; } #endif /** * * @} */