Analog comparator (ACMP) Peripheral API. More...
![]() |
Data Structures | |
struct | ACMP_CapsenseInit_TypeDef |
struct | ACMP_Init_TypeDef |
Defines | |
#define | ACMP_CAPSENSE_INIT_DEFAULT |
#define | ACMP_INIT_DEFAULT |
Enumerations | |
enum | ACMP_CapsenseResistor_TypeDef { acmpResistor0 = _ACMP_INPUTSEL_CSRESSEL_RES0, acmpResistor1 = _ACMP_INPUTSEL_CSRESSEL_RES1, acmpResistor2 = _ACMP_INPUTSEL_CSRESSEL_RES2, acmpResistor3 = _ACMP_INPUTSEL_CSRESSEL_RES3 } |
enum | ACMP_HysteresisLevel_TypeDef { acmpHysteresisLevel0 = _ACMP_CTRL_HYSTSEL_HYST0, acmpHysteresisLevel1 = _ACMP_CTRL_HYSTSEL_HYST1, acmpHysteresisLevel2 = _ACMP_CTRL_HYSTSEL_HYST2, acmpHysteresisLevel3 = _ACMP_CTRL_HYSTSEL_HYST3, acmpHysteresisLevel4 = _ACMP_CTRL_HYSTSEL_HYST4, acmpHysteresisLevel5 = _ACMP_CTRL_HYSTSEL_HYST5, acmpHysteresisLevel6 = _ACMP_CTRL_HYSTSEL_HYST6, acmpHysteresisLevel7 = _ACMP_CTRL_HYSTSEL_HYST7 } |
enum | ACMP_WarmTime_TypeDef { acmpWarmTime4 = _ACMP_CTRL_WARMTIME_4CYCLES, acmpWarmTime8 = _ACMP_CTRL_WARMTIME_8CYCLES, acmpWarmTime16 = _ACMP_CTRL_WARMTIME_16CYCLES, acmpWarmTime32 = _ACMP_CTRL_WARMTIME_32CYCLES, acmpWarmTime64 = _ACMP_CTRL_WARMTIME_64CYCLES, acmpWarmTime128 = _ACMP_CTRL_WARMTIME_128CYCLES, acmpWarmTime256 = _ACMP_CTRL_WARMTIME_256CYCLES, acmpWarmTime512 = _ACMP_CTRL_WARMTIME_512CYCLES } |
enum | ACMP_Channel_TypeDef { acmpChannel0 = _ACMP_INPUTSEL_NEGSEL_CH0, acmpChannel1 = _ACMP_INPUTSEL_NEGSEL_CH1, acmpChannel2 = _ACMP_INPUTSEL_NEGSEL_CH2, acmpChannel3 = _ACMP_INPUTSEL_NEGSEL_CH3, acmpChannel4 = _ACMP_INPUTSEL_NEGSEL_CH4, acmpChannel5 = _ACMP_INPUTSEL_NEGSEL_CH5, acmpChannel6 = _ACMP_INPUTSEL_NEGSEL_CH6, acmpChannel7 = _ACMP_INPUTSEL_NEGSEL_CH7, acmpChannel1V25 = _ACMP_INPUTSEL_NEGSEL_1V25, acmpChannel2V5 = _ACMP_INPUTSEL_NEGSEL_2V5, acmpChannelVDD = _ACMP_INPUTSEL_NEGSEL_VDD } |
Functions | |
void | ACMP_CapsenseInit (ACMP_TypeDef *acmp, const ACMP_CapsenseInit_TypeDef *init) |
Sets up the ACMP for use in capacative sense applications. | |
void | ACMP_CapsenseChannelSet (ACMP_TypeDef *acmp, ACMP_Channel_TypeDef channel) |
Sets the ACMP channel used for capacative sensing. | |
void | ACMP_ChannelSet (ACMP_TypeDef *acmp, ACMP_Channel_TypeDef negSel, ACMP_Channel_TypeDef posSel) |
Sets which channels should be used in ACMP comparisons. | |
void | ACMP_Disable (ACMP_TypeDef *acmp) |
Disables the ACMP. | |
void | ACMP_Enable (ACMP_TypeDef *acmp) |
Enables the ACMP. | |
void | ACMP_GPIOSetup (ACMP_TypeDef *acmp, uint32_t location, bool enable, bool invert) |
Sets up GPIO output from the ACMP. | |
void | ACMP_Init (ACMP_TypeDef *acmp, const ACMP_Init_TypeDef *init) |
void | ACMP_Reset (ACMP_TypeDef *acmp) |
Reset ACMP to same state as after a HW reset. | |
__STATIC_INLINE void | ACMP_IntClear (ACMP_TypeDef *acmp, uint32_t flags) |
Clear one or more pending ACMP interrupts. | |
__STATIC_INLINE void | ACMP_IntDisable (ACMP_TypeDef *acmp, uint32_t flags) |
Disable one or more ACMP interrupts. | |
__STATIC_INLINE void | ACMP_IntEnable (ACMP_TypeDef *acmp, uint32_t flags) |
Enable one or more ACMP interrupts. | |
__STATIC_INLINE uint32_t | ACMP_IntGet (ACMP_TypeDef *acmp) |
Get pending ACMP interrupt flags. | |
__STATIC_INLINE uint32_t | ACMP_IntGetEnabled (ACMP_TypeDef *acmp) |
Get enabled and pending ACMP interrupt flags. Useful for handling more interrupt sources in the same interrupt handler. | |
__STATIC_INLINE void | ACMP_IntSet (ACMP_TypeDef *acmp, uint32_t flags) |
Set one or more pending ACMP interrupts from SW. |
Analog comparator (ACMP) Peripheral API.
#define ACMP_CAPSENSE_INIT_DEFAULT |
{ false, /* fullBias */ \ false, /* halfBias */ \ 0x7, /* biasProg */ \ acmpWarmTime512, /* 512 cycle warmup to be safe */ \ acmpHysteresisLevel5, \ acmpResistor3, \ false, /* low power reference */ \ 0x3D, /* VDD level */ \ true /* Enable after init. */ \ }
Default config for capacitive sense mode initialization.
#define ACMP_INIT_DEFAULT |
{ false, /* fullBias */ \ false, /* halfBias */ \ 0x7, /* biasProg */ \ false, /* No interrupt on falling edge. */ \ false, /* No interrupt on rising edge. */ \ acmpWarmTime512, /* 512 cycle warmup to be safe */ \ acmpHysteresisLevel5, \ false, /* Disabled emitting inactive value during warmup. */ \ false, /* low power reference */ \ 0x3D, /* VDD level */ \ true /* Enable after init. */ \ }
Default config for ACMP regular initialization.
enum ACMP_Channel_TypeDef |
ACMP inputs. Note that scaled VDD and bandgap references can only be used as negative inputs.
Hysteresis level. See datasheet for your device for details on each level.
ACMP warmup time. The delay is measured in HFPERCLK cycles and should be at least 10 us.
void ACMP_CapsenseChannelSet | ( | ACMP_TypeDef * | acmp, | |
ACMP_Channel_TypeDef | channel | |||
) |
Sets the ACMP channel used for capacative sensing.
[in] | acmp | Pointer to ACMP peripheral register block. |
[in] | channel | The ACMP channel to use for capacative sensing (Possel). |
void ACMP_CapsenseInit | ( | ACMP_TypeDef * | acmp, | |
const ACMP_CapsenseInit_TypeDef * | init | |||
) |
Sets up the ACMP for use in capacative sense applications.
This function sets up the ACMP for use in capacacitve sense applications. To use the capacative sense functionality in the ACMP you need to use the PRS output of the ACMP module to count the number of oscillations in the capacative sense circuit (possibly using a TIMER).
[in] | acmp | Pointer to ACMP peripheral register block. |
[in] | init | Pointer to initialization structure used to configure ACMP for capacative sensing operation. |
Definition at line 96 of file em_acmp.c.
References ACMP_CapsenseInit_TypeDef::biasProg, BITBAND_Peripheral(), ACMP_CapsenseInit_TypeDef::enable, ACMP_CapsenseInit_TypeDef::fullBias, ACMP_CapsenseInit_TypeDef::halfBias, ACMP_CapsenseInit_TypeDef::hysteresisLevel, ACMP_CapsenseInit_TypeDef::lowPowerReferenceEnabled, ACMP_CapsenseInit_TypeDef::resistor, ACMP_CapsenseInit_TypeDef::vddLevel, and ACMP_CapsenseInit_TypeDef::warmTime.
void ACMP_ChannelSet | ( | ACMP_TypeDef * | acmp, | |
ACMP_Channel_TypeDef | negSel, | |||
ACMP_Channel_TypeDef | posSel | |||
) |
void ACMP_Disable | ( | ACMP_TypeDef * | acmp | ) |
void ACMP_Enable | ( | ACMP_TypeDef * | acmp | ) |
void ACMP_GPIOSetup | ( | ACMP_TypeDef * | acmp, | |
uint32_t | location, | |||
bool | enable, | |||
bool | invert | |||
) |
Sets up GPIO output from the ACMP.
CMU_ClockEnable(cmuClock_GPIO, true);
[in] | acmp | Pointer to the ACMP peripheral register block. |
location | The pin location to use. See the datasheet for location to pin mappings. | |
enable | Enable or disable pin output. | |
invert | Invert output. |
void ACMP_Init | ( | ACMP_TypeDef * | acmp, | |
const ACMP_Init_TypeDef * | init | |||
) |
[in] | acmp | Pointer to the ACMP peripheral register block. |
[in] | init | Pointer to initialization structure used to configure ACMP for capacative sensing operation. |
Definition at line 288 of file em_acmp.c.
References ACMP_Init_TypeDef::biasProg, BITBAND_Peripheral(), ACMP_Init_TypeDef::enable, ACMP_Init_TypeDef::fullBias, ACMP_Init_TypeDef::halfBias, ACMP_Init_TypeDef::hysteresisLevel, ACMP_Init_TypeDef::inactiveValue, ACMP_Init_TypeDef::interruptOnFallingEdge, ACMP_Init_TypeDef::interruptOnRisingEdge, ACMP_Init_TypeDef::lowPowerReferenceEnabled, ACMP_Init_TypeDef::vddLevel, and ACMP_Init_TypeDef::warmTime.
__STATIC_INLINE void ACMP_IntClear | ( | ACMP_TypeDef * | acmp, | |
uint32_t | flags | |||
) |
__STATIC_INLINE void ACMP_IntDisable | ( | ACMP_TypeDef * | acmp, | |
uint32_t | flags | |||
) |
__STATIC_INLINE void ACMP_IntEnable | ( | ACMP_TypeDef * | acmp, | |
uint32_t | flags | |||
) |
Enable one or more ACMP interrupts.
[in] | acmp | Pointer to ACMP peripheral register block. |
[in] | flags | ACMP interrupt sources to enable. Use a bitwise logic OR combination of valid interrupt flags for the ACMP module (ACMP_IF_nnn). |
__STATIC_INLINE uint32_t ACMP_IntGet | ( | ACMP_TypeDef * | acmp | ) |
Get pending ACMP interrupt flags.
[in] | acmp | Pointer to ACMP peripheral register block. |
__STATIC_INLINE uint32_t ACMP_IntGetEnabled | ( | ACMP_TypeDef * | acmp | ) |
Get enabled and pending ACMP interrupt flags. Useful for handling more interrupt sources in the same interrupt handler.
[in] | acmp | Pointer to ACMP peripheral register block. |
__STATIC_INLINE void ACMP_IntSet | ( | ACMP_TypeDef * | acmp, | |
uint32_t | flags | |||
) |
Set one or more pending ACMP interrupts from SW.
[in] | acmp | Pointer to ACMP peripheral register block. |
[in] | flags | ACMP interrupt sources to set to pending. Use a bitwise logic OR combination of valid interrupt flags for the ACMP module (ACMP_IF_nnn). |
void ACMP_Reset | ( | ACMP_TypeDef * | acmp | ) |