#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; } }