CSENEMLIB
Detailed Description
Capacitive Sense (CSEN) Peripheral API.
This module provides functions for controlling the capacitive sense peripheral of Silicon Labs 32-bit MCUs and SoCs. The CSEN includes a capacitance-to-digital circuit that measures capacitance on selected inputs. Measurements are performed using either a successive approximation register (SAR) or a delta modulator (DM) analog to digital converter.
The CSEN can be configured to measure capacitance on a single port pin or to automatically measure multiple port pins in succession using scan mode. Also several port pins can be shorted together to measure the combined capacitance.
The CSEN includes an accumulator which can be configured to average multiple conversions on the selected input. Additionally, an exponential moving average (EMA) calculator is included to provide data smoothing. A comparator is also included and can be used to terminate a continuous conversion when the configured threshold condition is met.
The following example shows how to intialize and start a single conversion on one input:
Data Structures |
|
struct | CSEN_Init_TypeDef |
struct | CSEN_InitMode_TypeDef |
Macros |
|
#define | CSEN_INIT_DEFAULT |
#define | CSEN_INITMODE_DEFAULT |
Enumerations |
|
enum |
CSEN_AccMode_TypeDef
{
csenAccMode1 = _CSEN_CTRL_ACU_ACC1, csenAccMode2 = _CSEN_CTRL_ACU_ACC2, csenAccMode4 = _CSEN_CTRL_ACU_ACC4, csenAccMode8 = _CSEN_CTRL_ACU_ACC8, csenAccMode16 = _CSEN_CTRL_ACU_ACC16, csenAccMode32 = _CSEN_CTRL_ACU_ACC32, csenAccMode64 = _CSEN_CTRL_ACU_ACC64 } |
enum |
CSEN_CmpMode_TypeDef
{
csenCmpModeDisabled = 0, csenCmpModeGreater = CSEN_CTRL_CMPEN | CSEN_CTRL_CMPPOL_GT, csenCmpModeLessOrEqual = CSEN_CTRL_CMPEN | CSEN_CTRL_CMPPOL_LTE, csenCmpModeEMAWindow = CSEN_CTRL_EMACMPEN } |
enum |
CSEN_ConvSel_TypeDef
{
csenConvSelSAR = CSEN_CTRL_CONVSEL_SAR, csenConvSelSARChop = CSEN_CTRL_CONVSEL_SAR | CSEN_CTRL_CHOPEN_ENABLE, csenConvSelDM = CSEN_CTRL_CONVSEL_DM, csenConvSelDMChop = CSEN_CTRL_CONVSEL_DM | CSEN_CTRL_CHOPEN_ENABLE } |
enum |
CSEN_DMRes_TypeDef
{
csenDMRes10 = _CSEN_DMCFG_CRMODE_DM10, csenDMRes12 = _CSEN_DMCFG_CRMODE_DM12, csenDMRes14 = _CSEN_DMCFG_CRMODE_DM14, csenDMRes16 = _CSEN_DMCFG_CRMODE_DM16 } |
enum |
CSEN_DriveSel_TypeDef
{
csenDriveSelFull = 0, csenDriveSel1 = 1, csenDriveSel2 = 2, csenDriveSel3 = 3, csenDriveSel4 = 4, csenDriveSel5 = 5, csenDriveSel6 = 6, csenDriveSel7 = 7 } |
enum |
CSEN_EMASample_TypeDef
{
csenEMASampleW1 = _CSEN_EMACTRL_EMASAMPLE_W1, csenEMASampleW2 = _CSEN_EMACTRL_EMASAMPLE_W2, csenEMASampleW4 = _CSEN_EMACTRL_EMASAMPLE_W4, csenEMASampleW8 = _CSEN_EMACTRL_EMASAMPLE_W8, csenEMASampleW16 = _CSEN_EMACTRL_EMASAMPLE_W16, csenEMASampleW32 = _CSEN_EMACTRL_EMASAMPLE_W32, csenEMASampleW64 = _CSEN_EMACTRL_EMASAMPLE_W64 } |
enum |
CSEN_GainSel_TypeDef
{
csenGainSel1X = 0, csenGainSel2X = 1, csenGainSel3X = 2, csenGainSel4X = 3, csenGainSel5X = 4, csenGainSel6X = 5, csenGainSel7X = 6, csenGainSel8X = 7 } |
enum |
CSEN_InputSel_TypeDef
{
csenInputSelDefault = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_DEFAULT, csenInputSelAPORT1CH0TO7 = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_APORT1CH0TO7, csenInputSelAPORT1CH8TO15 = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_APORT1CH8TO15, csenInputSelAPORT1CH16TO23 = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_APORT1CH16TO23, csenInputSelAPORT1CH24TO31 = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_APORT1CH24TO31, csenInputSelAPORT3CH0TO7 = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_APORT3CH0TO7, csenInputSelAPORT3CH8TO15 = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_APORT3CH8TO15, csenInputSelAPORT3CH16TO23 = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_APORT3CH16TO23, csenInputSelAPORT3CH24TO31 = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_APORT3CH24TO31 } |
enum |
CSEN_PCPrescale_TypeDef
{
csenPCPrescaleDiv1 = _CSEN_TIMCTRL_PCPRESC_DIV1, csenPCPrescaleDiv2 = _CSEN_TIMCTRL_PCPRESC_DIV2, csenPCPrescaleDiv4 = _CSEN_TIMCTRL_PCPRESC_DIV4, csenPCPrescaleDiv8 = _CSEN_TIMCTRL_PCPRESC_DIV8, csenPCPrescaleDiv16 = _CSEN_TIMCTRL_PCPRESC_DIV16, csenPCPrescaleDiv32 = _CSEN_TIMCTRL_PCPRESC_DIV32, csenPCPrescaleDiv64 = _CSEN_TIMCTRL_PCPRESC_DIV64, csenPCPrescaleDiv128 = _CSEN_TIMCTRL_PCPRESC_DIV128 } |
enum |
CSEN_PRSSel_TypeDef
{
csenPRSSELCh0 = _CSEN_PRSSEL_PRSSEL_PRSCH0, csenPRSSELCh1 = _CSEN_PRSSEL_PRSSEL_PRSCH1, csenPRSSELCh2 = _CSEN_PRSSEL_PRSSEL_PRSCH2, csenPRSSELCh3 = _CSEN_PRSSEL_PRSSEL_PRSCH3, csenPRSSELCh4 = _CSEN_PRSSEL_PRSSEL_PRSCH4, csenPRSSELCh5 = _CSEN_PRSSEL_PRSSEL_PRSCH5, csenPRSSELCh6 = _CSEN_PRSSEL_PRSSEL_PRSCH6, csenPRSSELCh7 = _CSEN_PRSSEL_PRSSEL_PRSCH7 } |
enum |
CSEN_ResetPhaseSel_TypeDef
{
csenResetPhaseSel0 = 0, csenResetPhaseSel1 = 1, csenResetPhaseSel2 = 2, csenResetPhaseSel3 = 3, csenResetPhaseSel4 = 4, csenResetPhaseSel5 = 5, csenResetPhaseSel6 = 6, csenResetPhaseSel7 = 7 } |
enum |
CSEN_SampleMode_TypeDef
{
csenSampleModeBonded = CSEN_CTRL_CM_SGL | CSEN_CTRL_MCEN_ENABLE, csenSampleModeSingle = CSEN_CTRL_CM_SGL, csenSampleModeScan = CSEN_CTRL_CM_SCAN, csenSampleModeContBonded = CSEN_CTRL_CM_CONTSGL | CSEN_CTRL_MCEN_ENABLE, csenSampleModeContSingle = CSEN_CTRL_CM_CONTSGL, csenSampleModeContScan = CSEN_CTRL_CM_CONTSCAN } |
enum |
CSEN_SARRes_TypeDef
{
csenSARRes10 = _CSEN_CTRL_SARCR_CLK10, csenSARRes12 = _CSEN_CTRL_SARCR_CLK12, csenSARRes14 = _CSEN_CTRL_SARCR_CLK14, csenSARRes16 = _CSEN_CTRL_SARCR_CLK16 } |
enum |
CSEN_SingleSel_TypeDef
{
csenSingleSelDefault = _CSEN_SINGLECTRL_SINGLESEL_DEFAULT, csenSingleSelAPORT1XCH0 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH0, csenSingleSelAPORT1YCH1 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH1, csenSingleSelAPORT1XCH2 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH2, csenSingleSelAPORT1YCH3 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH3, csenSingleSelAPORT1XCH4 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH4, csenSingleSelAPORT1YCH5 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH5, csenSingleSelAPORT1XCH6 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH6, csenSingleSelAPORT1YCH7 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH7, csenSingleSelAPORT1XCH8 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH8, csenSingleSelAPORT1YCH9 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH9, csenSingleSelAPORT1XCH10 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH10, csenSingleSelAPORT1YCH11 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH11, csenSingleSelAPORT1XCH12 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH12, csenSingleSelAPORT1YCH13 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH13, csenSingleSelAPORT1XCH14 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH14, csenSingleSelAPORT1YCH15 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH15, csenSingleSelAPORT1XCH16 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH16, csenSingleSelAPORT1YCH17 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH17, csenSingleSelAPORT1XCH18 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH18, csenSingleSelAPORT1YCH19 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH19, csenSingleSelAPORT1XCH20 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH20, csenSingleSelAPORT1YCH21 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH21, csenSingleSelAPORT1XCH22 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH22, csenSingleSelAPORT1YCH23 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH23, csenSingleSelAPORT1XCH24 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH24, csenSingleSelAPORT1YCH25 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH25, csenSingleSelAPORT1XCH26 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH26, csenSingleSelAPORT1YCH27 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH27, csenSingleSelAPORT1XCH28 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH28, csenSingleSelAPORT1YCH29 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH29, csenSingleSelAPORT1XCH30 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH30, csenSingleSelAPORT1YCH31 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH31, csenSingleSelAPORT3XCH0 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH0, csenSingleSelAPORT3YCH1 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH1, csenSingleSelAPORT3XCH2 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH2, csenSingleSelAPORT3YCH3 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH3, csenSingleSelAPORT3XCH4 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH4, csenSingleSelAPORT3YCH5 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH5, csenSingleSelAPORT3XCH6 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH6, csenSingleSelAPORT3YCH7 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH7, csenSingleSelAPORT3XCH8 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH8, csenSingleSelAPORT3YCH9 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH9, csenSingleSelAPORT3XCH10 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH10, csenSingleSelAPORT3YCH11 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH11, csenSingleSelAPORT3XCH12 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH12, csenSingleSelAPORT3YCH13 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH13, csenSingleSelAPORT3XCH14 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH14, csenSingleSelAPORT3YCH15 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH15, csenSingleSelAPORT3XCH16 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH16, csenSingleSelAPORT3YCH17 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH17, csenSingleSelAPORT3XCH18 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH18, csenSingleSelAPORT3YCH19 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH19, csenSingleSelAPORT3XCH20 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH20, csenSingleSelAPORT3YCH21 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH21, csenSingleSelAPORT3XCH22 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH22, csenSingleSelAPORT3YCH23 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH23, csenSingleSelAPORT3XCH24 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH24, csenSingleSelAPORT3YCH25 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH25, csenSingleSelAPORT3XCH26 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH26, csenSingleSelAPORT3YCH27 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH27, csenSingleSelAPORT3XCH28 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH28, csenSingleSelAPORT3YCH29 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH29, csenSingleSelAPORT3XCH30 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH30, csenSingleSelAPORT3YCH31 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH31 } |
enum |
CSEN_TrigSel_TypeDef
{
csenTrigSelPRS = _CSEN_CTRL_STM_PRS, csenTrigSelTimer = _CSEN_CTRL_STM_TIMER, csenTrigSelStart = _CSEN_CTRL_STM_START } |
Functions |
|
__STATIC_INLINE uint32_t | CSEN_DataGet ( CSEN_TypeDef *csen) |
Get last conversion result.
|
|
__STATIC_INLINE void | CSEN_Disable ( CSEN_TypeDef *csen) |
Disables the CSEN.
|
|
void | CSEN_DMBaselineSet ( CSEN_TypeDef *csen, uint32_t up, uint32_t down) |
Set the DM integrator initial value.
|
|
__STATIC_INLINE uint32_t | CSEN_EMAGet ( CSEN_TypeDef *csen) |
Get last exponential moving average.
|
|
__STATIC_INLINE void | CSEN_EMASet ( CSEN_TypeDef *csen, uint32_t ema) |
Set exponential moving average initial value.
|
|
__STATIC_INLINE void | CSEN_Enable ( CSEN_TypeDef *csen) |
Enables the CSEN.
|
|
void | CSEN_Init ( CSEN_TypeDef *csen, const CSEN_Init_TypeDef *init) |
Initialize CSEN.
|
|
void | CSEN_InitMode ( CSEN_TypeDef *csen, const CSEN_InitMode_TypeDef *init) |
Initialize a CSEN measurement mode.
|
|
__STATIC_INLINE void | CSEN_IntClear ( CSEN_TypeDef *csen, uint32_t flags) |
Clear one or more pending CSEN interrupts.
|
|
__STATIC_INLINE void | CSEN_IntDisable ( CSEN_TypeDef *csen, uint32_t flags) |
Disable one or more CSEN interrupts.
|
|
__STATIC_INLINE void | CSEN_IntEnable ( CSEN_TypeDef *csen, uint32_t flags) |
Enable one or more CSEN interrupts.
|
|
__STATIC_INLINE uint32_t | CSEN_IntGet ( CSEN_TypeDef *csen) |
Get pending CSEN interrupt flags.
|
|
__STATIC_INLINE uint32_t | CSEN_IntGetEnabled ( CSEN_TypeDef *csen) |
Get enabled and pending CSEN interrupt flags. Useful for handling more interrupt sources in the same interrupt handler.
|
|
__STATIC_INLINE void | CSEN_IntSet ( CSEN_TypeDef *csen, uint32_t flags) |
Set one or more pending CSEN interrupts from SW.
|
|
__STATIC_INLINE bool | CSEN_IsBusy ( CSEN_TypeDef *csen) |
Return CSEN conversion busy status.
|
|
void | CSEN_Reset ( CSEN_TypeDef *csen) |
Reset CSEN to same state as after a HW reset.
|
|
__STATIC_INLINE void | CSEN_Start ( CSEN_TypeDef *csen) |
Start scan sequence and/or single conversion.
|
|
Macro Definition Documentation
#define CSEN_INIT_DEFAULT |
Definition at line
374
of file
em_csen.h
.
#define CSEN_INITMODE_DEFAULT |
Definition at line
474
of file
em_csen.h
.
Enumeration Type Documentation
enum CSEN_AccMode_TypeDef |
Accumulator Mode Select.
Definition at line
144
of file
em_csen.h
.
enum CSEN_CmpMode_TypeDef |
Comparator Mode. Selects the operation of the digital comparator.
Definition at line
86
of file
em_csen.h
.
enum CSEN_ConvSel_TypeDef |
Converter Select. Determines the converter operational mode.
Definition at line
101
of file
em_csen.h
.
enum CSEN_DMRes_TypeDef |
Drive Strength Select. Scales the output current.
Definition at line
207
of file
em_csen.h
.
enum CSEN_GainSel_TypeDef |
Gain Select. See reference manual for information on each setting.
Definition at line
219
of file
em_csen.h
.
APORT channel to CSEN input selection.
Definition at line
255
of file
em_csen.h
.
Period counter clock pre-scaler. See the reference manual for source clock information.
Definition at line
172
of file
em_csen.h
.
enum CSEN_PRSSel_TypeDef |
Peripheral Reflex System signal used to trigger conversion.
Definition at line
231
of file
em_csen.h
.
Reset Phase Timing Select (units are microseconds).
Definition at line
195
of file
em_csen.h
.
Sample Mode. Determines how inputs are sampled for a conversion.
Definition at line
116
of file
em_csen.h
.
enum CSEN_SARRes_TypeDef |
APORT channel to CSEN single input selection.
Definition at line
268
of file
em_csen.h
.
enum CSEN_TrigSel_TypeDef |
Function Documentation
__STATIC_INLINE uint32_t CSEN_DataGet | ( | CSEN_TypeDef * |
csen
|
) |
Get last conversion result.
- Note
- Check conversion busy flag before calling this function. In addition, the result width and format depend on the parameters passed to the CSEN_InitMode() function.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block.
- Returns
- Result data from last conversion.
Definition at line
519
of file
em_csen.h
.
References CSEN_TypeDef::DATA .
__STATIC_INLINE void CSEN_Disable | ( | CSEN_TypeDef * |
csen
|
) |
Disables the CSEN.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block.
Definition at line
567
of file
em_csen.h
.
References _CSEN_CTRL_EN_SHIFT , BUS_RegBitWrite() , and CSEN_TypeDef::CTRL .
void CSEN_DMBaselineSet | ( | CSEN_TypeDef * |
csen,
|
uint32_t |
up,
|
||
uint32_t |
down
|
||
) |
Set the DM integrator initial value.
Sets the initial value of the integrator(s) for the Delta Modulation (DM) converter. The initial value for the ramp-down integrator has no effect if low frequency attenuation was not selected by the mode initialization function CSEN_InitMode() .
- Note
- Confirm CSEN is idle before calling this function.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block. [in] up
Initial value for the ramp-up integrator. [in] down
Initial value for the ramp-down integrator. Has no effect if low frequency attenuation is not configured.
Definition at line
88
of file
em_csen.c
.
References _CSEN_DMBASELINE_BASELINEDN_SHIFT , _CSEN_DMBASELINE_BASELINEUP_SHIFT , and CSEN_TypeDef::DMBASELINE .
__STATIC_INLINE uint32_t CSEN_EMAGet | ( | CSEN_TypeDef * |
csen
|
) |
Get last exponential moving average.
- Note
- Confirm CSEN is idle before calling this function.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block.
- Returns
- Exponential moving average from last conversion.
Definition at line
537
of file
em_csen.h
.
References _CSEN_EMA_EMA_MASK , and CSEN_TypeDef::EMA .
__STATIC_INLINE void CSEN_EMASet | ( | CSEN_TypeDef * |
csen,
|
uint32_t |
ema
|
||
) |
Set exponential moving average initial value.
- Note
- Call this function before starting a conversion.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block. [in] ema
Initial value for the exponential moving average.
Definition at line
555
of file
em_csen.h
.
References _CSEN_EMA_EMA_MASK , and CSEN_TypeDef::EMA .
__STATIC_INLINE void CSEN_Enable | ( | CSEN_TypeDef * |
csen
|
) |
Enables the CSEN.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block.
Definition at line
579
of file
em_csen.h
.
References _CSEN_CTRL_EN_SHIFT , BUS_RegBitWrite() , and CSEN_TypeDef::CTRL .
void CSEN_Init | ( | CSEN_TypeDef * |
csen,
|
const CSEN_Init_TypeDef * |
init
|
||
) |
Initialize CSEN.
Initializes common functionality for all measurement types. In addition, measurement mode must be configured, please refer to CSEN_InitMode() .
- Note
- This function will stop any ongoing conversion and disable CSEN.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block. [in] init
Pointer to CSEN initialization structure.
Definition at line
114
of file
em_csen.c
.
References _CSEN_CTRL_LOCALSENS_MASK , _CSEN_PRSSEL_PRSSEL_SHIFT , _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_SHIFT , _CSEN_SCANINPUTSEL0_INPUT16TO23SEL_SHIFT , _CSEN_SCANINPUTSEL0_INPUT24TO31SEL_SHIFT , _CSEN_SCANINPUTSEL0_INPUT8TO15SEL_SHIFT , _CSEN_SCANINPUTSEL1_INPUT32TO39SEL_SHIFT , _CSEN_SCANINPUTSEL1_INPUT40TO47SEL_SHIFT , _CSEN_SCANINPUTSEL1_INPUT48TO55SEL_SHIFT , _CSEN_SCANINPUTSEL1_INPUT56TO63SEL_SHIFT , _CSEN_TIMCTRL_PCPRESC_SHIFT , _CSEN_TIMCTRL_PCTOP_SHIFT , _CSEN_TIMCTRL_WARMUPCNT_SHIFT , CSEN_Init_TypeDef::cpAccuracyHi , CSEN_CTRL_CPACCURACY_HI , CSEN_CTRL_STM_DEFAULT , CSEN_CTRL_WARMUPMODE_KEEPCSENWARM , CSEN_TypeDef::CTRL , CSEN_Init_TypeDef::input0To7 , CSEN_Init_TypeDef::keepWarm , CSEN_Init_TypeDef::localSense , CSEN_Init_TypeDef::pcPrescale , CSEN_Init_TypeDef::pcReload , CSEN_TypeDef::PRSSEL , CSEN_Init_TypeDef::prsSel , CSEN_TypeDef::SCANINPUTSEL0 , CSEN_TypeDef::SCANINPUTSEL1 , CSEN_TypeDef::TIMCTRL , and CSEN_Init_TypeDef::warmUpCount .
void CSEN_InitMode | ( | CSEN_TypeDef * |
csen,
|
const CSEN_InitMode_TypeDef * |
init
|
||
) |
Initialize a CSEN measurement mode.
Used to configure any type of measurement mode. After the measurement has been configured, calling CSEN_Enable() will enable CSEN and allow it to start a conversion from the selected trigger source. To manually start a conversion use CSEN_Start() . To check if a conversion is in progress use CSEN_IsBusy() , or alternatively use the interrupt flags returned by CSEN_IntGet() to detect when a conversion is completed.
- Note
- This function will stop any ongoing conversion and disable CSEN.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block. [in] init
Pointer to CSEN measurement mode initialization structure.
Definition at line
181
of file
em_csen.c
.
References _CSEN_ANACTRL_IDACIREFS_SHIFT , _CSEN_ANACTRL_IREFPROG_SHIFT , _CSEN_ANACTRL_TRSTPROG_SHIFT , _CSEN_CMPTHR_CMPTHR_SHIFT , _CSEN_CTRL_ACU_SHIFT , _CSEN_CTRL_CPACCURACY_MASK , _CSEN_CTRL_LOCALSENS_MASK , _CSEN_CTRL_SARCR_SHIFT , _CSEN_CTRL_STM_SHIFT , _CSEN_CTRL_WARMUPMODE_MASK , _CSEN_DMCFG_CRMODE_SHIFT , _CSEN_DMCFG_DMCR_SHIFT , _CSEN_DMCFG_DMG_SHIFT , _CSEN_DMCFG_DMR_SHIFT , _CSEN_EMACTRL_EMASAMPLE_SHIFT , _CSEN_SINGLECTRL_SINGLESEL_SHIFT , CSEN_InitMode_TypeDef::accMode , CSEN_TypeDef::ANACTRL , CSEN_InitMode_TypeDef::autoGnd , CSEN_InitMode_TypeDef::cmpMode , CSEN_TypeDef::CMPTHR , CSEN_InitMode_TypeDef::cmpThr , CSEN_InitMode_TypeDef::convSel , CSEN_CTRL_AUTOGND_ENABLE , CSEN_CTRL_DMAEN_ENABLE , CSEN_CTRL_DRSF_ENABLE , CSEN_DMCFG_DMGRDIS , CSEN_TypeDef::CTRL , CSEN_TypeDef::DMCFG , CSEN_InitMode_TypeDef::dmCycles , CSEN_InitMode_TypeDef::dmDelta , CSEN_InitMode_TypeDef::dmFixedDelta , CSEN_InitMode_TypeDef::dmIterPerCycle , CSEN_InitMode_TypeDef::dmRes , CSEN_InitMode_TypeDef::driveSel , CSEN_TypeDef::EMACTRL , CSEN_InitMode_TypeDef::emaSample , CSEN_InitMode_TypeDef::enableDma , CSEN_InitMode_TypeDef::gainSel , CSEN_InitMode_TypeDef::inputMask0 , CSEN_InitMode_TypeDef::inputMask1 , CSEN_InitMode_TypeDef::resetPhase , CSEN_InitMode_TypeDef::sampleMode , CSEN_InitMode_TypeDef::sarRes , CSEN_TypeDef::SCANMASK0 , CSEN_TypeDef::SCANMASK1 , CSEN_TypeDef::SINGLECTRL , CSEN_InitMode_TypeDef::singleSel , CSEN_InitMode_TypeDef::sumOnly , and CSEN_InitMode_TypeDef::trigSel .
__STATIC_INLINE void CSEN_IntClear | ( | CSEN_TypeDef * |
csen,
|
uint32_t |
flags
|
||
) |
Clear one or more pending CSEN interrupts.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block. [in] flags
Pending CSEN interrupt source to clear. Use a bitwise logic OR combination of valid interrupt flags for the CSEN module (CSEN_IF_nnn).
Definition at line
600
of file
em_csen.h
.
References CSEN_TypeDef::IFC .
__STATIC_INLINE void CSEN_IntDisable | ( | CSEN_TypeDef * |
csen,
|
uint32_t |
flags
|
||
) |
Disable one or more CSEN interrupts.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block. [in] flags
CSEN interrupt sources to disable. Use a bitwise logic OR combination of valid interrupt flags for the CSEN module (CSEN_IF_nnn).
Definition at line
616
of file
em_csen.h
.
References CSEN_TypeDef::IEN .
__STATIC_INLINE void CSEN_IntEnable | ( | CSEN_TypeDef * |
csen,
|
uint32_t |
flags
|
||
) |
Enable one or more CSEN interrupts.
- Note
- Depending on the use, a pending interrupt may already be set prior to enabling the interrupt. Consider using CSEN_IntClear() prior to enabling if such a pending interrupt should be ignored.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block. [in] flags
CSEN interrupt sources to enable. Use a bitwise logic OR combination of valid interrupt flags for the CSEN module (CSEN_IF_nnn).
Definition at line
637
of file
em_csen.h
.
References CSEN_TypeDef::IEN .
__STATIC_INLINE uint32_t CSEN_IntGet | ( | CSEN_TypeDef * |
csen
|
) |
Get pending CSEN interrupt flags.
- Note
- The event bits are not cleared by the use of this function.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block.
- Returns
- CSEN interrupt sources pending. A bitwise logic OR combination of valid interrupt flags for the CSEN module (CSEN_IF_nnn).
Definition at line
656
of file
em_csen.h
.
References CSEN_TypeDef::IF .
__STATIC_INLINE uint32_t CSEN_IntGetEnabled | ( | CSEN_TypeDef * |
csen
|
) |
Get enabled and pending CSEN interrupt flags. Useful for handling more interrupt sources in the same interrupt handler.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block.
- Note
- Interrupt flags are not cleared by the use of this function.
- Returns
-
Pending and enabled CSEN interrupt sources. The return value is the bitwise AND combination of
- the OR combination of enabled interrupt sources in CSENx_IEN_nnn register (CSENx_IEN_nnn) and
- the OR combination of valid interrupt flags of the CSEN module (CSENx_IF_nnn).
Definition at line
680
of file
em_csen.h
.
References CSEN_TypeDef::IEN , and CSEN_TypeDef::IF .
__STATIC_INLINE void CSEN_IntSet | ( | CSEN_TypeDef * |
csen,
|
uint32_t |
flags
|
||
) |
Set one or more pending CSEN interrupts from SW.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block. [in] flags
CSEN interrupt sources to set to pending. Use a bitwise logic OR combination of valid interrupt flags for the CSEN module (CSEN_IF_nnn).
Definition at line
703
of file
em_csen.h
.
References CSEN_TypeDef::IFS .
__STATIC_INLINE bool CSEN_IsBusy | ( | CSEN_TypeDef * |
csen
|
) |
Return CSEN conversion busy status.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block.
- Returns
- True if CSEN conversion is in progress.
Definition at line
718
of file
em_csen.h
.
References _CSEN_STATUS_CSENBUSY_MASK , and CSEN_TypeDef::STATUS .
void CSEN_Reset | ( | CSEN_TypeDef * |
csen
|
) |
Reset CSEN to same state as after a HW reset.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block.
Definition at line
257
of file
em_csen.c
.
References _CSEN_ANACTRL_RESETVALUE , _CSEN_CMPTHR_RESETVALUE , _CSEN_CTRL_RESETVALUE , _CSEN_DATA_RESETVALUE , _CSEN_DMBASELINE_RESETVALUE , _CSEN_DMCFG_RESETVALUE , _CSEN_EMA_RESETVALUE , _CSEN_EMACTRL_RESETVALUE , _CSEN_IEN_RESETVALUE , _CSEN_IF_MASK , _CSEN_PRSSEL_RESETVALUE , _CSEN_SCANINPUTSEL0_RESETVALUE , _CSEN_SCANINPUTSEL1_RESETVALUE , _CSEN_SCANMASK0_RESETVALUE , _CSEN_SCANMASK1_RESETVALUE , _CSEN_SINGLECTRL_RESETVALUE , _CSEN_TIMCTRL_RESETVALUE , CSEN_TypeDef::ANACTRL , CSEN_TypeDef::CMPTHR , CSEN_TypeDef::CTRL , CSEN_TypeDef::DATA , CSEN_TypeDef::DMBASELINE , CSEN_TypeDef::DMCFG , CSEN_TypeDef::EMA , CSEN_TypeDef::EMACTRL , CSEN_TypeDef::IEN , CSEN_TypeDef::IFC , CSEN_TypeDef::PRSSEL , CSEN_TypeDef::SCANINPUTSEL0 , CSEN_TypeDef::SCANINPUTSEL1 , CSEN_TypeDef::SCANMASK0 , CSEN_TypeDef::SCANMASK1 , CSEN_TypeDef::SINGLECTRL , and CSEN_TypeDef::TIMCTRL .
__STATIC_INLINE void CSEN_Start | ( | CSEN_TypeDef * |
csen
|
) |
Start scan sequence and/or single conversion.
- Parameters
-
[in] csen
Pointer to CSEN peripheral register block.
Definition at line
730
of file
em_csen.h
.
References CSEN_TypeDef::CMD , and CSEN_CMD_START .