#include "exti.h" #include "key.h" #include "gpio.h" #include "uart.h" #include "e2p.h" #include "valve_control.h" #include "power_manage.h" #include "lcd.h" #include "master_slave_inter.h" #include "low_pwr_test.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(KEYA_S1_PORT, KEYA_S1_PIN) == SET) // { // GPIO_EXTI_EXTIISR_ClrEx(KEYA_S1_PORT, KEYA_S1_PIN); // GPIO_EXTI_Close(KEYA_S1_PORT,KEYA_S1_PIN); // InfraRed_Uart0_Clk_Init(); // Key_Awaken_Init(); // Botton_LPTimer_Clk_Init(); // LPTIM_CR_EN_Setable(ENABLE); //#ifdef RS232_PRINTF // printf("KEYA_EXTI\r\n"); //#endif // __SYS_DELAY_SEC_FLAG_CLEAR_(sys_active_time); // Çå³ýϵͳ¼¤»îʱ¼ä±ê־λ // pwr_vol_g.lith_flag = LMS_KEY; // »½ÐѺóÁ¢Âí²É¼¯Ò»´ÎµçÁ¿ // pwr_vol_g.alka_flag = AMS_KEY; // if(GPIO_ReadOutputDataBit(LCD_PWR_GPIO_PORT,LCD_PWR_PIN) == Bit_RESET) // Lcd_Sys_Init(); // °´¼ü»½ÐÑÆÁÄ» // } // 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 //// } //// } // 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) { 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( LITHIUM_PWR_DOWN_PORT, LITHIUM_PWR_DOWN_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( 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); }