#include "other_fun.h" #include "gpio.h" #include "linked_list.h" #include "main.h" #include "sizhu_alarm_record.h" void led_init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý OutputIO(GPIOD,GPIO_Pin_8,OUT_PUSHPULL); } void led_Close(void) { CloseIO(GPIOD,GPIO_Pin_8); } void UNCAP_GPIO_Clk_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý InputtIO( UNCAP_PORT, UNCAP_PIN, IN_NORMAL); } void magnetic_interference_GPIO_Clk_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý InputtIO( MAGNETIC_INTERFERENCE_PORT, MAGNETIC_INTERFERENCE_PIN, IN_NORMAL); } void UncapCheck(void) { static uint8_t upcap_cnt =0 ; UNCAP_GPIO_Clk_Init(); if(UNCAP_IO_READ == Bit_SET){ if(upcap_cnt >= 2){ //¿ª¸ÇÁË __SYS_STATUS_ALARM_BYTES_SET(cover_open, ALARM_ID_COVER_OPEN); }else{ upcap_cnt ++; } }else{ if(upcap_cnt == 0){ __SYS_STATUS_BYTES_STATUS(cover_open, RESET, ALARM_ID_COVER_OPEN); }else{ upcap_cnt --; } } } void MagneticInterferenceCheck(void) { static uint8_t magnetic_interference_cnt =0 ; magnetic_interference_GPIO_Clk_Init(); if(MAGNETIC_INTERFERENCE_IO_READ == Bit_SET){ if(magnetic_interference_cnt >= 2){ //´Å¸ÉÈÅ // __SYS_STATUS_ALARM_BYTES_SET(cover_open, ALARM_ID_COVER_OPEN); }else{ magnetic_interference_cnt ++; } }else{ if(magnetic_interference_cnt == 0){ // __SYS_STATUS_BYTES_STATUS(cover_open, RESET, ALARM_ID_COVER_OPEN); }else{ magnetic_interference_cnt --; } } } //ϵͳÆäËûÁãɢС¹¦ÄÜ´¦Àí void OtherFunPro(void) { #ifdef LED_TEST led_init(); LED_TOG; // if((sys_clockBCD_g.sec &0x04) == 0){ //4ÃëÉÁ˸ // led_init(); // LED_ON; // }else{ // led_init(); // LED_OFF; // } #else led_Close(); #endif UncapCheck(); //¿ª¸Ç¼ì²â MagneticInterferenceCheck(); //´Å¸ÉÈżì²â }