forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-05-13 29651cb059e56969ed845b045ab46505c89dc0c5
HARDWARE/EXTI/exti.c
@@ -5,9 +5,11 @@
#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"
void NMI_Handler(void)
{
@@ -26,12 +28,118 @@
{
//   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)
   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.gprs_timeout_para.delay_time)
      {
         if (!(--sys_delay_sec_para_g.gprs_timeout_para.delay_time))
            sys_delay_sec_para_g.gprs_timeout_para.delay_flag = SET;
      }
   }
   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)
         {
            //¿ª·§
         }else if(KEY2_IO_READ==Bit_RESET)
         {
            //¹Ø·§
         }else
         {
            //µ¥»÷µçÔ´
         }
      }
   }
   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)
      {
      }
   }
   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;
         }
      }
   }
   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);
      ValveMotorStop();//¹Ø±ÕÇý¶¯
      save_valve_para_g.valve_status = VALVE_OPEN;
   }
   if(GPIO_EXTI_EXTIISR_ChkEx(Motor_CL_PORT, Motor_CL_PIN)  == SET) //·§ÃŹص½Î»ÖжÏ
   {
      GPIO_EXTI_EXTIISR_ClrEx(Motor_CL_PORT, Motor_CL_PIN);
      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(VALVE_FORCED_OPEN_PORT, VALVE_FORCED_OPEN_PIN)  == SET)
//   {
//      GPIO_EXTI_EXTIISR_ClrEx(VALVE_FORCED_OPEN_PORT, VALVE_FORCED_OPEN_PIN);
@@ -61,27 +169,7 @@
////#endif   
////      }
////   }
//   if(GPIO_EXTI_EXTIISR_ChkEx(LITHIUM_PWR_DOWN_PORT, LITHIUM_PWR_DOWN_PIN)  == SET)
//   {
//      GPIO_EXTI_EXTIISR_ClrEx(LITHIUM_PWR_DOWN_PORT, LITHIUM_PWR_DOWN_PIN);
//#ifdef RS232_PRINTF
//    printf("﮵çµôµç\r\n");
//#endif
//      __SYS_STATUS_ALARM_BYTES_SET(lith_remove);
//      pwr_vol_g.lith_vcc_per = 0;
//      SLAVE_PWR_OFF; //µôµçºóС°åµçѹ²»ÎÈ£¬»á²úÉúÁ÷Á¿Êý¾Ý»ìÂÒ£¬´Ó¶øµ¼Ö¸÷ÖÖ·ÇÕý³£±¨¾¯£¬ËùÒÔÐèÒª¹Ø±ÕµçÔ´£¬»Ö¸´ºóÔÙ¿ªÆô¡£
////    pwr_vol_g.lith_flag = LMS_PERIOD; // µôµçºóÁ¢Âí²É¼¯Ò»´ÎµçÁ¿
//   }
//   if(GPIO_EXTI_EXTIISR_ChkEx(ALKALI_PWR_DOWN_PORT, ALKALI_PWR_DOWN_PIN)  == SET)
//   {
//      GPIO_EXTI_EXTIISR_ClrEx(ALKALI_PWR_DOWN_PORT, ALKALI_PWR_DOWN_PIN);
//#ifdef RS232_PRINTF
//    printf("¼îµçµôµç\r\n");
//#endif
//      __SYS_STATUS_ALARM_BYTES_SET(alka_remove);
//
////    pwr_vol_g.alka_flag = AMS_PERIOD; // µôµçºóÁ¢Âí²É¼¯Ò»´ÎµçÁ¿
//   }
}
void All_Exti_Init(void)
@@ -91,9 +179,9 @@
//   
//      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( LITHIUM_PWR_DOWN_PORT, LITHIUM_PWR_DOWN_PIN, EXTI_FALLING, ENABLE);   //PF11
//    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( ALKALI_PWR_DOWN_PORT, ALKALI_PWR_DOWN_PIN, EXTI_FALLING, ENABLE);   //PA4
//      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);