forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-06-19 6e3f1f560d618b37ee1a47fa2b0f682b70c3ef1c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#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(); //´Å¸ÉÈżì²â
    
}