51 #include "../inc/hw_types.h" 52 #include "../inc/hw_memmap.h" 53 #include "../inc/hw_sys0.h" 71 #define LPCMP_DIVISION_PATH_N SYS0_LPCMPCFG_DIVPATH_NSIDE 72 #define LPCMP_DIVISION_PATH_P SYS0_LPCMPCFG_DIVPATH_PSIDE 80 #define LPCMP_DIVISION_FACTOR_1_1 SYS0_LPCMPCFG_DIV_VAL0 81 #define LPCMP_DIVISION_FACTOR_3_4 SYS0_LPCMPCFG_DIV_VAL1 82 #define LPCMP_DIVISION_FACTOR_1_2 SYS0_LPCMPCFG_DIV_VAL2 83 #define LPCMP_DIVISION_FACTOR_1_3 SYS0_LPCMPCFG_DIV_VAL3 84 #define LPCMP_DIVISION_FACTOR_1_4 SYS0_LPCMPCFG_DIV_VAL4 92 #define LPCMP_POLARITY_FALL SYS0_LPCMPCFG_EDGCFG_FALL 93 #define LPCMP_POLARITY_RISE SYS0_LPCMPCFG_EDGCFG_RISE 101 #define LPCMP_NEG_INPUT_VDDD SYS0_LPCMPCFG_NSEL_VDDD 102 #define LPCMP_NEG_INPUT_VDDS SYS0_LPCMPCFG_NSEL_VDDA 103 #define LPCMP_NEG_INPUT_A2 SYS0_LPCMPCFG_NSEL_VA_PAD_A2 104 #define LPCMP_NEG_INPUT_A3 SYS0_LPCMPCFG_NSEL_VA_PAD_A3 105 #define LPCMP_NEG_INPUT_OPEN SYS0_LPCMPCFG_NSEL_OPEN 113 #define LPCMP_POS_INPUT_A1 SYS0_LPCMPCFG_PSEL_VA_PAD_A1 114 #define LPCMP_POS_INPUT_A2 SYS0_LPCMPCFG_PSEL_VA_PAD_A2 115 #define LPCMP_POS_INPUT_A3 SYS0_LPCMPCFG_PSEL_VA_PAD_A3 116 #define LPCMP_POS_INPUT_VDDS SYS0_LPCMPCFG_PSEL_VDDA 117 #define LPCMP_POS_INPUT_OPEN SYS0_LPCMPCFG_PSEL_OPEN 135 HWREG(SYS0_BASE + SYS0_O_LPCMPCFG) |= SYS0_LPCMPCFG_EN;
147 HWREG(SYS0_BASE + SYS0_O_LPCMPCFG) &= ~SYS0_LPCMPCFG_EN;
163 HWREG(SYS0_BASE + SYS0_O_LPCMPCFG) |= SYS0_LPCMPCFG_EVTEN;
175 HWREG(SYS0_BASE + SYS0_O_LPCMPCFG) &= ~SYS0_LPCMPCFG_EVTEN;
188 HWREG(SYS0_BASE + SYS0_O_LPCMPCFG) &= ~SYS0_LPCMPCFG_EVTIFG;
201 HWREG(SYS0_BASE + SYS0_O_LPCMPCFG) |= SYS0_LPCMPCFG_WUENSB;
214 HWREG(SYS0_BASE + SYS0_O_LPCMPCFG) &= ~SYS0_LPCMPCFG_WUENSB;
237 lpcmpcfg = HWREG(SYS0_BASE + SYS0_O_LPCMPCFG);
238 HWREG(SYS0_BASE + SYS0_O_LPCMPCFG) = (lpcmpcfg & ~SYS0_LPCMPCFG_NSEL_M) | (input & SYS0_LPCMPCFG_NSEL_M);
255 if (HWREG(SYS0_BASE + SYS0_O_LPCMPCFG) & SYS0_LPCMPCFG_COUT_HIGH)
285 lpcmpcfg = HWREG(SYS0_BASE + SYS0_O_LPCMPCFG);
286 HWREG(SYS0_BASE + SYS0_O_LPCMPCFG) = (lpcmpcfg & ~SYS0_LPCMPCFG_PSEL_M) | (input & SYS0_LPCMPCFG_PSEL_M);
307 HWREG(SYS0_BASE + SYS0_O_LPCMPCFG) |= SYS0_LPCMPCFG_EDGCFG;
311 HWREG(SYS0_BASE + SYS0_O_LPCMPCFG) &= ~SYS0_LPCMPCFG_EDGCFG;
336 lpcmpcfg = HWREG(SYS0_BASE + SYS0_O_LPCMPCFG);
337 HWREG(SYS0_BASE + SYS0_O_LPCMPCFG) = (lpcmpcfg & ~SYS0_LPCMPCFG_DIV_M) | (divider & SYS0_LPCMPCFG_DIV_M);
358 HWREG(SYS0_BASE + SYS0_O_LPCMPCFG) |= SYS0_LPCMPCFG_DIVPATH;
362 HWREG(SYS0_BASE + SYS0_O_LPCMPCFG) &= ~SYS0_LPCMPCFG_DIVPATH;
383 #endif // __LPCMP_H__ __STATIC_INLINE void LPCMPSetDividerRatio(uint32_t divider)
Selects the ratio used by LPCMP voltage divider.
Definition: lpcmp.h:332
#define LPCMP_DIVISION_PATH_P
Apply voltage divider to the positive input.
Definition: lpcmp.h:72
__STATIC_INLINE void LPCMPSetPolarity(uint32_t polarity)
Selects the edge polarity of LPCMP output on which an event is triggered.
Definition: lpcmp.h:303
__STATIC_INLINE void LPCMPDisableWakeup(void)
Disables LPCMP as wakeup source from standby.
Definition: lpcmp.h:212
__STATIC_INLINE void LPCMPSelectPositiveInput(uint32_t input)
Selects the positive input of LPCMP.
Definition: lpcmp.h:281
__STATIC_INLINE bool LPCMPIsOutputHigh(void)
Verifies if the raw output of LPCMP is high.
Definition: lpcmp.h:253
__STATIC_INLINE void LPCMPSetDividerPath(uint32_t path)
Selects the input path on which the LPCMP voltage divider is applied.
Definition: lpcmp.h:354
#define LPCMP_POLARITY_FALL
Select falling edge for event generation.
Definition: lpcmp.h:92
__STATIC_INLINE void LPCMPEnable(void)
Enables LPCMP.
Definition: lpcmp.h:133
__STATIC_INLINE void LPCMPEnableWakeup(void)
Enables LPCMP as wakeup source from standby.
Definition: lpcmp.h:199
__STATIC_INLINE void LPCMPEnableEvent(void)
Enables LPCMP event generation.
Definition: lpcmp.h:161
#define __STATIC_INLINE
Definition: cmsis_gcc.h:47
__STATIC_INLINE void LPCMPSelectNegativeInput(uint32_t input)
Selects the negative input of LPCMP.
Definition: lpcmp.h:233
__STATIC_INLINE void LPCMPClearEvent(void)
Clear LPCMP event flag.
Definition: lpcmp.h:186
__STATIC_INLINE void LPCMPDisableEvent(void)
Disables LPCMP event generation.
Definition: lpcmp.h:173
__STATIC_INLINE void LPCMPDisable(void)
Disables LPCMP.
Definition: lpcmp.h:145