#include "key.h"
|
#include "gpio.h"
|
#include "lcd.h"
|
#include "main.h"
|
#include "system_run_fun.h"
|
|
/*******************************************************************************
|
* Function Name: Key_GPIO_Init
|
* Parameters: none
|
* Return: none
|
* Description:
|
******************************************************************************/
|
void Key_GPIO_Init(void)
|
{
|
InputtIO(KEY1_PORT,KEY1_PIN,IN_NORMAL);
|
InputtIO(KEY2_PORT,KEY2_PIN,IN_NORMAL);
|
InputtIO(KEY3_PORT,KEY3_PIN,IN_NORMAL);
|
// InputtIO(KEY4_PORT,KEY4_PIN,IN_PULLUP);
|
}
|
|
|
|
void keyPro(void)
|
{
|
static uint8_t P_Key1Cnt=0,R_Key2Cnt=0,L_Key3Cnt=0;
|
|
P_Key1Cnt = (KEY1_IO_READ==Bit_RESET)? P_Key1Cnt+1:0;
|
R_Key2Cnt = (KEY2_IO_READ==Bit_RESET)? R_Key2Cnt+1:0;
|
L_Key3Cnt = (KEY3_IO_READ==Bit_RESET)? L_Key3Cnt+1:0;
|
|
|
//Èç¹ûûÓм¤»î£¬Ôò°´¼ü2ºÍ3²»ÉúЧ
|
if(__SYS_DELAY_SEC_TIME_GET_(sys_active_time) ==0){
|
R_Key2Cnt = L_Key3Cnt = 0;
|
}
|
|
if(R_Key2Cnt== 5)
|
{
|
//ÀýÈçÓÒ¼ü³¤°´5Ãë½øÈë²éѯģʽ
|
R_Key2Cnt = 0;
|
if(sys_display_para_g.sys_and_display_mode == NORMAL_MODE){
|
sys_display_para_g.sys_and_display_mode = DISPLAY_PARA;
|
}else if(sys_display_para_g.sys_and_display_mode == DISPLAY_PARA){
|
sys_display_para_g.sys_and_display_mode = NORMAL_MODE;
|
}else{
|
sys_display_para_g.sys_and_display_mode = NORMAL_MODE;
|
}
|
}
|
|
|
|
/**ÓÉÓÚĿǰKey2ºÍkey3ÓõÄPE14ºÍPE15Òý½ÅûÓÐÖжϣ¬ÔÝʱֻÄÜÂÖѯ²éѯ*/
|
if(P_Key1Cnt ==0 && R_Key2Cnt >0 && L_Key3Cnt ==0) //µ¥»÷key2 ÓÒ¼ü
|
{
|
lcd_wake_up_flag_g = 1;
|
if(__SYS_DELAY_SEC_TIME_GET_(sys_active_time) >0){ //¼¤»îºóÈÎÒâ°´¼üÖØÖü¤»îʱ¼ä
|
__SYS_DELAY_SEC_TIME_SET_(sys_active_time,SYS_WAKE_UP_TIME);
|
}
|
}
|
|
if(P_Key1Cnt ==0 && R_Key2Cnt ==0 && L_Key3Cnt >0) //µ¥»÷key3 ×ó¼ü
|
{
|
lcd_wake_up_flag_g = 1;
|
if(__SYS_DELAY_SEC_TIME_GET_(sys_active_time) >0){ //¼¤»îºóÈÎÒâ°´¼üÖØÖü¤»îʱ¼ä
|
__SYS_DELAY_SEC_TIME_SET_(sys_active_time,SYS_WAKE_UP_TIME);
|
}
|
}else if(P_Key1Cnt ==0 && R_Key2Cnt >0 && L_Key3Cnt >0) //µ¥»÷key2 + key3
|
{
|
lcd_wake_up_flag_g = 1;
|
if(__SYS_DELAY_SEC_TIME_GET_(sys_active_time) >0){ //¼¤»îºóÈÎÒâ°´¼üÖØÖü¤»îʱ¼ä
|
__SYS_DELAY_SEC_TIME_SET_(sys_active_time,SYS_WAKE_UP_TIME);
|
}
|
|
//²É¼¯Á÷Á¿¼ÆÊý¾Ý²¢´¥·¢Éϱ¨
|
start_rs485_g = RS485_START_REASON_KEY;
|
start_wrc_g = WRC_MEANS_KEY;
|
|
}
|
|
|
|
}
|