📄 osdkey.c
字号:
/******************************************************************************
Copyright (c) 2005 MStar Semiconductor, Inc.
All rights reserved.
[Module Name]: OSDKey.c
[Date]: 04-Feb-2005
[Comment]:
OSD Key scan Functions.
[Reversion History]:
*******************************************************************************/
#define _OSDKEY_C_
/********************
* INCLUDE FILES *
*********************/
#include "Project.h"
#include "Global.h"
#include "Mcu_reg.h"
#include "TypeDef.h"
#include "Ms_RWreg.h"
#include "Ms7X_reg.h"
#include "Mst7x.h"
#include "Debug.h"
#include "Misc.h"
#include "OSDFunc.h"
#include "OSDMenu.h"
#include "OSDKey.h"
#include "Mcu.h"
#include "PANEL.h"
/**********************
* FUNCTION PROTOTYPES *
***********************/
BYTE osdKeyGetKeypadStatus(void)
{
BYTE ucKeyData = 0xFF;
#if (KEY_TYPE_SEL == KEY_ADC)//kevin
BYTE ucADCValue = 0x00;
BYTE ucADCValueTemp = 0x00;
BYTE ucDebounce = 0x00;
ucADCValue = MCUXFR_20_KEY_ADC1 & 0x3F;
ucADCValueTemp = ucADCValue;
if (ucADCValue <= (KEY_AD_L3+KEY_AD_DELTA))
{
for (ucDebounce = 0 ; ucDebounce<=10; ucDebounce++)
{
miscDelay1ms(2);
ucADCValue = MCUXFR_20_KEY_ADC1 & 0x3F;
if ((ucADCValue > (ucADCValueTemp+1)) ||(ucADCValue < ((char)ucADCValueTemp-1)))
{
ucDebounce = 0;
ucADCValueTemp = ucADCValue;
}
}
#if RS232DBG
printf("-ADC0 value- %x\r\n",ucADCValue);
#endif
if (ucADCValue < (KEY_AD_L0 + KEY_AD_DELTA))
ucKeyData &= ~KEY_POWER;
else if ((KEY_AD_L1-KEY_AD_DELTA) < ucADCValue && ucADCValue < (KEY_AD_L1+KEY_AD_DELTA))
ucKeyData &= ~KEY_AUTO;
else if ((KEY_AD_L2-KEY_AD_DELTA) < ucADCValue && ucADCValue < (KEY_AD_L2+KEY_AD_DELTA))
ucKeyData &= ~KEY_EXIT;
else if ((KEY_AD_L3-KEY_AD_DELTA) < ucADCValue && ucADCValue < (KEY_AD_L3+KEY_AD_DELTA))
ucKeyData &= ~KEY_MENU;
}
ucADCValue = MCUXFR_21_KEY_ADC2 & 0x3F;
ucADCValueTemp = ucADCValue;
if (ucADCValue <= (KEY_AD_L3+KEY_AD_DELTA))
{
for (ucDebounce = 0 ; ucDebounce<=10; ucDebounce++)
{
miscDelay1ms(2);
ucADCValue = MCUXFR_21_KEY_ADC2 & 0x3F;
if((ucADCValue > (ucADCValueTemp+1)) ||(ucADCValue < ((char)ucADCValueTemp-1)))
{
ucDebounce = 0;
ucADCValueTemp = ucADCValue;
}
}
#if RS232DBG
printf("-ADC1 value- %x\r\n",ucADCValue);
#endif
if (ucADCValue < (KEY_AD_L0 + KEY_AD_DELTA))
;//ucKeyData &= ~KEY_MINUS;//Masked 2006-01-09
else if ((KEY_AD_L1-KEY_AD_DELTA) < ucADCValue && ucADCValue < (KEY_AD_L1+KEY_AD_DELTA))
;//ucKeyData &= ~KEY_PLUS;
else if ((KEY_AD_L2-KEY_AD_DELTA) < ucADCValue && ucADCValue < (KEY_AD_L2+KEY_AD_DELTA))
;//ucKeyData &= ~KEY_PLUS;
else if ((KEY_AD_L3-KEY_AD_DELTA) < ucADCValue && ucADCValue < (KEY_AD_L3+KEY_AD_DELTA))
;//ucKeyData &= ~KEY_MINUS;
}
return ucKeyData;
#else
if (!bPOWER_KEY)
{
ucKeyData &= ~KEY_POWER;
g_ucSystemFlag &= ~ENTER_SPI_DEBUG;//20050920
}
if (!bSOURCE_KEY)
{
ucKeyData &= ~KEY_EXIT;
miscDelay1ms(40);//20050920
if (!bMENU_KEY)//20050920
{
g_ucSystemFlag |= ENTER_SPI_DEBUG;
}
}
if (!bLEFT_KEY)
ucKeyData &= ~KEY_PLUS;
if (!bRIGHT_KEY)
ucKeyData &= ~KEY_MINUS;
if (!bMENU_KEY)
{
ucKeyData &= ~KEY_MENU;
miscDelay1ms(40);//20050920
if (!bSOURCE_KEY)//20050920
{
g_ucSystemFlag |= ENTER_SPI_DEBUG;
}
}
//while((KEY_PORT & KEY_PORTMASK) != KEY_PORTMASK);
return ucKeyData;
#endif
}
void osdKeyScanKeypad(void)
{
BYTE ucKeypadStatus;
ucKeypadStatus=(osdKeyGetKeypadStatus()^KEY_PORTMASK)&KEY_PORTMASK;
if (ucKeypadStatus)
{
if (ucKeypadStatus==KEY_FACTORY) //&& !PowerOnFlag)
{
//Set_FactoryModeFlag();
g_ucKeypadButton=BTN_POWER;
}
else if (ucKeypadStatus==KEY_PLUS)
g_ucKeypadButton=BTN_PLUS;
else if (ucKeypadStatus==KEY_MINUS)
g_ucKeypadButton=BTN_MINUS;
else if (ucKeypadStatus==KEY_MENU)
{
if (g_ucKeypadButton==BTN_MENU || g_ucKeypadButton==BTN_REPEAT)
g_ucKeypadButton=BTN_REPEAT;
else
g_ucKeypadButton=BTN_MENU;
}
else if (ucKeypadStatus==KEY_EXIT)
{
if (g_ucKeypadButton==BTN_REPEAT)
g_ucKeypadButton=BTN_REPEAT;
else
g_ucKeypadButton=BTN_EXIT;
}
else if (ucKeypadStatus==KEY_AUTO)
{
if (g_ucKeypadButton==BTN_REPEAT)
g_ucKeypadButton=BTN_REPEAT;
else
g_ucKeypadButton=BTN_AUTO;
}
else if (ucKeypadStatus==KEY_POWER)
{
if (g_ucKeypadButton==BTN_POWER || g_ucKeypadButton==BTN_REPEAT)
g_ucKeypadButton=BTN_REPEAT;
else
g_ucKeypadButton=BTN_POWER;
}
else
g_ucKeypadButton=BTN_NOTHING;
}
else
g_ucKeypadButton=BTN_NOTHING;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -