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
#include "comp.h"
 
#include "gpio.h"
#include "uart.h"
 
 
void COMP_IRQHandler(void)
{
    //×¢Òâ¶ÔÊäÈëÐźŵÄÂ˲¨£¬·ñÔòÈÝÒ×Îó´¥·¢ÖжÏ
    if(SET == COMP_ISR_CMP1IF_Chk())
    {
        COMP_ISR_CMP1IF_Clr();                                    //Çå³ýCOMP1ÖжϱêÖ¾
        if(SET == COMP_CR1_CMP1OR_Chk())                        //±È½ÏÆ÷1 V+µçѹ¸ßÓÚV-
        {
            printf("1\r\n");
        }
        else                                                    //±È½ÏÆ÷1 V+µçѹµÍÓÚV-
        {
            printf("2\r\n");
        }
    }
}
 
void Comp1_IO_PF6_Init(void)
{
    CMU_PERCLK_SetableEx(PADCLK, ENABLE);               //PADʱÖÓʹÄÜ
    //COMP1
    //Õý¶Ë    
    AnalogIO( LIT_PWR_UNDER_PORT, LIT_PWR_UNDER_PIN );    //ANAC_COMP1CR_V1PSEL_PF6
    GPIOx_ANEN_Setable(LIT_PWR_UNDER_PORT, LIT_PWR_UNDER_PIN, ENABLE);
}
 
 
void Comp1_Init(void)
{
    CMU_PERCLK_SetableEx(ANACCLK, ENABLE);              //Ä£Äâµç·×ÜÏßʱÖÓʹÄÜ
    CMU_PERCLK_SetableEx(COMPCLK, ENABLE);              //COMP×ÜÏßʱÖÓʹÄÜ
    
    //buffer½öÔÚNÊäÈëvref/2ʱÐèÒª´ò¿ª
    //´ò¿ªºó»áÔö¼Ó0.6uAµÄ¹¦ºÄ
    //±È½ÏÆ÷1±È½ÏÆ÷2¹«ÓÃÒ»¸öbuffer£¨×îÎÈÍ׵ķ½·¨ÊÇ´ò¿ª buffer£©
    //´ò¿ªbuffer
    COMP_ICR_BUFBYP_Setable(DISABLE);//¹Ø±Õbufferbypass
    COMP_ICR_BUF_OFF_Setable(DISABLE);//´ò¿ªbuffer
    
    COMP_PCR_HSCMP1_EN_Set(COMP_PCR_HSCMP1_EN_SLOW);    // µÍ¹¦ºÄģʽ 
    COMP_PCR_HSCMPBUF_EN_Set(COMP_PCR_HSCMPBUF_EN_SLOW);// µÍ¹¦ºÄģʽ 
    COMP_CR1_WINMODE_Setable(DISABLE);                  //½ûÖ¹´°¿Úģʽ 
    COMP_CR1_POLAR_Set(COMP_CR1_POLAR_POS);             //ÕýÏòÊä³ö
    COMP_CR1_DFEN_Setable(DISABLE);                     //½ûÖ¹Êä³öÂ˲¨
    
    COMP_CR1_V1PSEL_Set(COMP_CR1_V1PSEL_COMP1_INP1);    //PF6
    COMP_CR1_V1NSEL_Set(COMP_CR1_V1NSEL_VREF);
    //±È½ÏÆ÷ÖжÏÔ´Ñ¡ÔñÉÏÉýÑØºÍϽµÑØ
    COMP_ICR_CMP1SEL_Set(COMP_ICR_CMP1SEL_BOTH);
    
    COMP_ICR_CMP1IE_Setable(ENABLE);                            //´ò¿ªÖжÏ
    
    //NVICÖжÏÅäÖÃ
    NVIC_DisableIRQ(COMP_IRQn);
    NVIC_SetPriority(COMP_IRQn,2);                              //ÖжÏÓÅÏȼ¶ÅäÖÃ
    NVIC_EnableIRQ(COMP_IRQn);
    
    COMP_CR1_CMP1EN_Setable(ENABLE);                    //Æô¶¯±È½ÏÆ÷1
}