#include "exti.h"
|
#include "key.h"
|
#include "gpio.h"
|
#include "uart.h"
|
#include "eeprom.h"
|
#include "extern_rtc.h"
|
#include "system_general_para.h"
|
#include "key.h"
|
#include "valve_control.h"
|
#include "system_mem_para.h"
|
#include "system_run_fun.h"
|
#include "power_manage.h"
|
#include "pulse_and_alarm_line.h"
|
#include "tim.h"
|
#include "wireless_remote_comm.h"
|
#include "main.h"
|
#include "lcd.h"
|
|
void NMI_Handler(void)
|
{
|
// //NWKUPĬÈÏÁ¬½Óµ½ÁËcpuµÄNMI²»¿ÉÆÁ±ÎÖжϣ¬²»ÊÜNVIC¿ØÖÆ£¬²»ÊÜÈ«¾ÖÖжÏʹÄÜ¿ØÖÆ£¬»½ÐѺó±ØÈ»½øNMIÖжÏ
|
// if( SET == PMU_WKFR_WKPxF_Chk(PINWKEN_PF5) )
|
// {
|
// PMU_WKFR_WKPxF_Clr(PINWKEN_PF5);
|
// __SYS_STATUS_ALARM_BYTES_SET(uncap_state_1);
|
//#ifdef RS232_PRINTF
|
// printf("¿ª¸Ç±¨¾¯\r\n");
|
//#endif
|
// }
|
}
|
|
void GPIO_IRQHandler(void)
|
{
|
// if(__SYS_DELAY_SEC_FLAG_GET(sys_active_time) == SET && LargeCurrent_LimitingProcess() == 3)
|
SysWakeUp_ClockCfg();
|
|
if(GPIO_EXTI_EXTIISR_ChkEx(EXT_RTC_INT_PORT, EXT_RTC_INT_PIN) == SET) //RTCÖжÏ
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(EXT_RTC_INT_PORT, EXT_RTC_INT_PIN);
|
sys_run_period = SET;
|
|
// ÅжÏϵͳ¼¤»îʱ¼äÊÇ·ñ½áÊø
|
if (sys_delay_sec_para_g.sys_active_time.delay_time)
|
{
|
if (!(--sys_delay_sec_para_g.sys_active_time.delay_time))
|
{
|
sys_delay_sec_para_g.sys_active_time.delay_flag = SET;
|
}
|
}
|
|
// ÅжÏGPRS³¬Ê±Ê±¼ä
|
if (sys_delay_sec_para_g.wrc_timeout_para.delay_time)
|
{
|
if (!(--sys_delay_sec_para_g.wrc_timeout_para.delay_time))
|
sys_delay_sec_para_g.wrc_timeout_para.delay_flag = SET;
|
}
|
|
//wrcÖØ±¨Ê±¼äµ¹¼ÆÊ±
|
if (wrc_ctrl_para_g.wrc_restart_time_sec_cnt)
|
{
|
if (!(--wrc_ctrl_para_g.wrc_restart_time_sec_cnt))
|
;
|
}
|
|
}
|
|
if(GPIO_EXTI_EXTIISR_ChkEx(KEY1_PORT, KEY1_PIN) == SET) //key1ÖжÏ,µçÔ´
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(KEY1_PORT, KEY1_PIN);
|
|
if(KEY1_IO_READ==Bit_RESET)
|
{
|
if((KEY3_IO_READ==Bit_RESET)&&(__SYS_DELAY_SEC_TIME_GET_(sys_active_time) >0))
|
{
|
//¿ª·§
|
if(__SYS_STATUS_BYTES_GET(account_state) == RESET ||__SYS_STATUS_BYTES_GET(valve_lock) == RESET )
|
ValveCtrlOrder(VC_OPEN);
|
}else if((KEY2_IO_READ==Bit_RESET)&&(__SYS_DELAY_SEC_TIME_GET_(sys_active_time) >0))
|
{
|
//¹Ø·§
|
if(__SYS_STATUS_BYTES_GET(account_state) == RESET)
|
ValveCtrlOrder(VC_CLOSE);
|
}else
|
{
|
//µ¥»÷µçÔ´
|
if(__SYS_DELAY_SEC_TIME_GET_(sys_active_time) ==0){
|
//Ê״λ½ÐÑ£¬LCD°åÏÈÉϵ磬ʹµÄkey2ºÍkey3ÀÉÏÉúЧ£¬²¢ÇÒÊ״λ½ÐÑÐèÒª³õʼ»¯Òº¾§Çý¶¯£¬Öñê־λ
|
lcd_first_wake_up_flag_g = SET;
|
Lcd_GPIO_Init();
|
LCD_PWR_ON;
|
}
|
|
__SYS_DELAY_SEC_TIME_SET_(sys_active_time,SYS_WAKE_UP_TIME);
|
lcd_wake_up_flag_g = SET;
|
Key_GPIO_Init();
|
|
pwr_vol_g.lith_flag = LMS_KEY; //°´µçÔ´¼ü²É¼¯Ò»´Îµç³Øµçѹ
|
pwr_vol_g.alka_flag = AMS_KEY;
|
}
|
|
}
|
}
|
|
// if(GPIO_EXTI_EXTIISR_ChkEx(KEY2_PORT, KEY2_PIN) == SET) //key2ÖжÏ
|
// {
|
// GPIO_EXTI_EXTIISR_ClrEx(KEY2_PORT, KEY2_PIN);
|
// if(KEY2_IO_READ==Bit_RESET)
|
// {
|
// lcd_wake_up_flag_g = SET;
|
// if(__SYS_DELAY_SEC_TIME_GET_(sys_active_time) >0){ //¼¤»îºóÈÎÒâ°´¼üÖØÖü¤»îʱ¼ä
|
// __SYS_DELAY_SEC_TIME_SET_(sys_active_time,SYS_WAKE_UP_TIME);
|
// }
|
// }
|
// }
|
//
|
// if(GPIO_EXTI_EXTIISR_ChkEx(KEY3_PORT, KEY3_PIN) == SET) //key3ÖжÏ
|
// {
|
// GPIO_EXTI_EXTIISR_ClrEx(KEY3_PORT, KEY3_PIN);
|
// if(KEY3_IO_READ==Bit_RESET)
|
// {
|
// if(KEY2_IO_READ==Bit_RESET)
|
// {
|
// //²É¼¯Á÷Á¿¼ÆÊý¾Ý²¢´¥·¢Éϱ¨
|
// start_rs485_g = RS485_START_REASON_KEY;
|
// start_wrc_g = WRC_MEANS_KEY;
|
// }else{
|
// lcd_wake_up_flag_g = SET;
|
// }
|
//
|
// if(__SYS_DELAY_SEC_TIME_GET_(sys_active_time) >0){ //¼¤»îºóÈÎÒâ°´¼üÖØÖü¤»îʱ¼ä
|
// __SYS_DELAY_SEC_TIME_SET_(sys_active_time,SYS_WAKE_UP_TIME);
|
// }
|
//
|
// }
|
// }
|
|
// if(GPIO_EXTI_EXTIISR_ChkEx(KEY4_PORT, KEY4_PIN) == SET) //key4ÖжÏ
|
// {
|
// GPIO_EXTI_EXTIISR_ClrEx(KEY4_PORT, KEY4_PIN);
|
|
// }
|
|
|
if(GPIO_EXTI_EXTIISR_ChkEx(Motor_OP_PORT, Motor_OP_PIN) == SET) //·§ÃÅ¿ª¹Øµ½Î»ÐźÅÓõÄͬһ¸öÖжϣ¬ËùÒÔ·ÅÒ»Æð´¦Àí
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(Motor_OP_PORT, Motor_OP_PIN);
|
|
if(save_valve_para_g.valve_status == VALVE_OPENING){
|
if(Motor_OP_IO_READ == Bit_RESET){ //Òý½Å״̬ȷÈÏ
|
ValveMotorStop();//¹Ø±ÕÇý¶¯
|
save_valve_para_g.valve_status = VALVE_OPEN;
|
}
|
}else if(save_valve_para_g.valve_status == VALVE_CLOSING){
|
if(Motor_CL_IO_READ == Bit_RESET){ //Òý½Å״̬ȷÈÏ
|
ValveMotorStop();//¹Ø±ÕÇý¶¯
|
save_valve_para_g.valve_status = VALVE_CLOSE;
|
}
|
}
|
}
|
|
|
// if(GPIO_EXTI_EXTIISR_ChkEx(Motor_CL_PORT, Motor_CL_PIN) == SET) //·§ÃŹص½Î»ÖжÏ
|
// {
|
// GPIO_EXTI_EXTIISR_ClrEx(Motor_CL_PORT, Motor_CL_PIN);
|
// if(Motor_CL_IO_READ == Bit_RESET){ //Òý½Å״̬ȷÈÏ
|
// ValveMotorStop();//¹Ø±ÕÇý¶¯
|
// save_valve_para_g.valve_status = VALVE_CLOSE;
|
// }
|
//
|
// }
|
|
|
|
if(GPIO_EXTI_EXTIISR_ChkEx(LITH_PWR_LOSE_PORT, LITH_PWR_LOSE_PIN) == SET)
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(LITH_PWR_LOSE_PORT, LITH_PWR_LOSE_PIN);
|
|
// __SYS_STATUS_ALARM_BYTES_SET(lith_remove);
|
pwr_vol_g.lith_lose_check_flag = SET;
|
}
|
if(GPIO_EXTI_EXTIISR_ChkEx(ALKA_PWR_LOSE_PORT, ALKA_PWR_LOSE_PIN) == SET)
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(ALKA_PWR_LOSE_PORT, ALKA_PWR_LOSE_PIN);
|
|
// __SYS_STATUS_ALARM_BYTES_SET(alka_remove);
|
|
pwr_vol_g.alka_lose_check_flag = SET;
|
}
|
|
|
if(GPIO_EXTI_EXTIISR_ChkEx(LF_PULSE_INT_PORT, LF_PULSE_INT_PIN) == SET) //¼Æ·ÑµÍƵÂö³å
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(LF_PULSE_INT_PORT, LF_PULSE_INT_PIN);
|
//Ŀǰ½ö¿ªÆô¼Æ·ÑÂö³å¹¦ÄÜÇÒûÓб»¸´ÓòÅÐèÒª´¦Àí
|
if(((flow_meter_para_g.broken_line_multiplex & BROKEN_LINE_MUTIPLEX_PULSE)!=BROKEN_LINE_MUTIPLEX_PULSE)&& \
|
((flow_meter_para_g.flow_meter_conn_type==FLOW_METER_CONN_PULSE)||(flow_meter_para_g.flow_meter_conn_type==FLOW_METER_CONN_RS485_AND_PULSE))){
|
pulse_exti_flag = SET;
|
BTx_CR1_CHEN_Setable(BT1,ENABLE); //¿ªÆô¶¨Ê±Æ÷
|
}
|
}
|
|
if(GPIO_EXTI_EXTIISR_ChkEx(HWIDO_EX_PWR_PORT, HWIDO_EX_PWR_PIN) == SET) //ÍâµçÒÆ³ýÖжÏ
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(HWIDO_EX_PWR_PORT, HWIDO_EX_PWR_PIN);
|
//ÍâµçÒÆ³ýÁËÁ¢¼´¹Ø±ÕÍâµç¿ØÖÆ
|
EX_PWR_OFF;
|
// __SYS_STATUS_BYTES_STATUS(power_state, RESET, ALARM_ID_NORMAL);
|
|
}
|
|
|
if(GPIO_EXTI_EXTIISR_ChkEx(LIMIT_TRIGGER_PORT, LIMIT_TRIGGER_PIN) == SET) //ÏÞÁ÷´¥·¢
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(LIMIT_TRIGGER_PORT, LIMIT_TRIGGER_PIN);
|
//¼Ç¼ÏÞÁ÷´¥·¢Ê±µÄÐÅÏ¢
|
arrayA_2_arrayB((uint8_t *)&sys_clockBCD_g.year,&limit_trigger_record_para_g.record_time_BCD.year,sizeof(sys_clockBCD_g),LITTLE_ENDIAN);
|
limit_trigger_record_para_g.trigger_times ++;
|
limit_trigger_record_para_g.RS485_running_flag = sys_fun_run_ctrl_g.rs485_ctrl_flag.running_flag;
|
limit_trigger_record_para_g.valve_running_flag = sys_fun_run_ctrl_g.valve_ctrl_flag.running_flag;
|
limit_trigger_record_para_g.wrc_running_flag = sys_fun_run_ctrl_g.wrc_ctrl_flag.running_flag;
|
limit_trigger_record_para_g.EXPWR_check_status = HWIDO_EX_PWR_IO_READ;
|
limit_trigger_record_para_g.EXPWR_ctrl_status = __SYS_STATUS_BYTES_GET(power_state);
|
}
|
|
|
// if(GPIO_EXTI_EXTIISR_ChkEx(VALVE_FORCED_OPEN_PORT, VALVE_FORCED_OPEN_PIN) == SET)
|
// {
|
// GPIO_EXTI_EXTIISR_ClrEx(VALVE_FORCED_OPEN_PORT, VALVE_FORCED_OPEN_PIN);
|
//#ifdef RS232_PRINTF
|
// printf("Ç¿ÖÆ¿ª·§\r\n");
|
//#endif
|
// }
|
// //PF5 ºÍ PF6 ÊÇ Í¬Ò»ÖжÏÏß²»ÄÜͨ¹ýGPIO_EXTI_EXTIISR_ChkEx¸Ãº¯ÊýÇø·ÖÒý½Å
|
// //¶þÕßÖжϱßÑØÖ»ÄÜÑ¡ÆäÒ»
|
//// if(GPIO_EXTI_EXTIISR_ChkEx(LIT_PWR_UNDER_PORT, LIT_PWR_UNDER_PIN) == SET)
|
//// {
|
//// GPIO_EXTI_EXTIISR_ClrEx(LIT_PWR_UNDER_PORT, LIT_PWR_UNDER_PIN);
|
//// if(GPIO_ReadInputDataBit(LIT_PWR_UNDER_PORT,LIT_PWR_UNDER_PIN) == Bit_RESET)
|
//// {
|
//// __SYS_STATUS_ALARM_BYTES_SET(lith_under);
|
//// pwr_vol_g.lith_flag = LMS_PERIOD;
|
//// pwr_vol_g.lith_vcc_per = 0;
|
////#ifdef RS232_PRINTF
|
//// printf("﮵çǷѹ\r\n");
|
////#endif
|
//// }
|
//// if(GPIO_ReadInputDataBit(UNCAP_DETECTION_PORT,UNCAP_DETECTION_PIN) == Bit_SET)
|
//// {
|
//// __SYS_STATUS_ALARM_BYTES_SET(uncap_state_1);
|
////#ifdef RS232_PRINTF
|
//// printf("¿ª¸Ç±¨¾¯\r\n");
|
////#endif
|
//// }
|
//// }
|
|
}
|
|
void All_Exti_Init(void)
|
{
|
// CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK);//EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
// CMU_OPCCR1_EXTICKE_Setable(ENABLE); //EXTI¹¤×÷ʱÖÓʹÄÜ
|
//
|
// GPIO_EXTI_Init( KEYA_S1_PORT, KEYA_S1_PIN, EXTI_FALLING, ENABLE); //ÊäÈëÖжϴò¿ª¡¢Ï½µÑØ´¥·¢¡¢¿ªÆôÊý×ÖÂ˲¨ //PD6
|
// GPIO_EXTI_Init( VALVE_FORCED_OPEN_PORT, VALVE_FORCED_OPEN_PIN, EXTI_RISING, ENABLE); //PA1
|
// GPIO_EXTI_Init( LITH_PWR_LOSE_PORT, LITH_PWR_LOSE_PIN, EXTI_FALLING, ENABLE); //PF11
|
//// GPIO_EXTI_Init( LIT_PWR_UNDER_PORT, LIT_PWR_UNDER_PIN, EXTI_FALLING, ENABLE); //PF6
|
// GPIO_EXTI_Init( ALKA_PWR_LOSE_PORT, ALKA_PWR_LOSE_PIN, EXTI_FALLING, ENABLE); //PA4
|
//// GPIO_EXTI_Init( UNCAP_DETECTION_PORT, UNCAP_DETECTION_PIN, EXTI_RISING, ENABLE); //PF5
|
|
//// GPIO_PINWKSEL_SetEx(PINWKEN_PF5,GPIO_PINWKEN_PINWKSEL_RISING);
|
//// GPIO_PINWKEN_SetableEx(PINWKEN_PF5,ENABLE);//ʹÄÜPB0µÄNWKUP1¹¦ÄÜ
|
|
// /*NVICÖжÏÅäÖÃ*/
|
// NVIC_DisableIRQ(GPIO_IRQn);
|
// NVIC_SetPriority(GPIO_IRQn,2);//ÖжÏÓÅÏȼ¶ÅäÖÃ
|
// NVIC_EnableIRQ(GPIO_IRQn);
|
}
|