CapSense

Detailed Description

Capacitive sensing driver.

Capacitive sensing driver using TIMER and ACMP peripherals.

Functions

uint32_t CAPLESENSE_getNormalizedVal (uint8_t channel)
Get the current normalized channelValue for a channel.
uint8_t CAPLESENSE_getSegmentChannel (uint8_t capSegment)
Get the channelValue for a sensor segment.
int32_t CAPLESENSE_getSliderPosition (void)
Get the position of the slider.
uint32_t CAPLESENSE_getVal (uint8_t channel)
Get the current channelValue for a channel.
void CAPLESENSE_Init (bool sleep)
Initializes the capacative sense system without LESENSE.
void CAPLESENSE_setupCallbacks (void(*scanCb)(void), void(*chCb)(void))
LESENSE callback setup.
void CAPLESENSE_setupLESENSE (bool sleep)
Setup the LESENSE for capavitive sensing.
void CAPLESENSE_Sleep (void)
Send the capacative sense system to sleep mode.
uint32_t CAPSENSE_getNormalizedVal (uint8_t channel)
Get the current normalized channelValue for a channel.
bool CAPSENSE_getPressed (uint8_t channel)
Get the state of the Gecko Button.
int32_t CAPSENSE_getSliderPosition (void)
Get the position of the slider.
uint32_t CAPSENSE_getVal (uint8_t channel)
Get the current channelValue for a channel.
void CAPSENSE_Init (void)
Initializes the capacitive sense system.
static void CAPSENSE_Measure ( ACMP_Channel_TypeDef channel)
Start a capsense measurement of a specific channel and waits for it to complete.
void CAPSENSE_Sense (void)
This function iterates through all the capsensors and reads and initiates a reading. Uses EM1 while waiting for the result from each sensor.
void TIMER0_IRQHandler (void)
TIMER0 interrupt handler.

Function Documentation

uint32_t CAPLESENSE_getNormalizedVal ( uint8_t channel )

Get the current normalized channelValue for a channel.

Parameters
channel The channel.
Returns
The channel value in range (0-256).

Definition at line 440 of file caplesense.c .

References channelMaxValues , and channelValues .

uint8_t CAPLESENSE_getSegmentChannel ( uint8_t capSegment )

Get the channelValue for a sensor segment.

Parameters
capSegment
Returns
channel

Definition at line 404 of file caplesense.c .

int32_t CAPLESENSE_getSliderPosition ( void )

Get the position of the slider.

Returns
The position of the slider if it can be determined, -1 otherwise.

Definition at line 451 of file caplesense.c .

References channelMaxValues , and channelValues .

uint32_t CAPLESENSE_getVal ( uint8_t channel )

Get the current channelValue for a channel.

Parameters
channel The channel.
Returns
The channelValue.

Definition at line 430 of file caplesense.c .

References channelValues .

void CAPLESENSE_Init ( bool sleep )

Initializes the capacative sense system without LESENSE.

Parameters
sleep If true, go into sleep mode.

Definition at line 516 of file caplesense.c .

References CAPLESENSE_setupACMP() , CAPLESENSE_setupCMU() , CAPLESENSE_setupGPIO() , CAPLESENSE_setupLESENSE() , CORE_DECLARE_IRQ_STATE , CORE_ENTER_ATOMIC , and CORE_EXIT_ATOMIC .

void CAPLESENSE_setupCallbacks ( void(*)(void) scanCb,
void(*)(void) chCb
)

LESENSE callback setup.

Parameters
scanCb Scan callback
chCb Channel callback

Definition at line 345 of file caplesense.c .

References lesenseChCb , and lesenseScanCb .

uint32_t CAPSENSE_getNormalizedVal ( uint8_t channel )

Get the current normalized channelValue for a channel.

Parameters
channel The channel.
Returns
The channel value in range (0-256).

Definition at line 159 of file capsense.c .

References channelMaxValues , and channelValues .

bool CAPSENSE_getPressed ( uint8_t channel )

Get the state of the Gecko Button.

Parameters
channel The channel.
Returns
true if the button is "pressed" false otherwise.

Definition at line 171 of file capsense.c .

References channelMaxValues , and channelValues .

int32_t CAPSENSE_getSliderPosition ( void )

Get the position of the slider.

Returns
The position of the slider if it can be determined, -1 otherwise.

Definition at line 191 of file capsense.c .

References channelMaxValues , and channelValues .

uint32_t CAPSENSE_getVal ( uint8_t channel )

Get the current channelValue for a channel.

Parameters
channel The channel.
Returns
The channelValue.

Definition at line 149 of file capsense.c .

References channelValues .

void CAPSENSE_Init ( void )

Initializes the capacitive sense system.

Capacitive sensing uses two timers: TIMER0 and TIMER1 as well as ACMP. ACMP is set up in cap-sense (oscillator mode). TIMER1 counts the number of pulses generated by ACMP_CAPSENSE. When TIMER0 expires it generates an interrupt. The number of pulses counted by TIMER1 is then stored in channelValues

Definition at line 311 of file capsense.c .

References ACMP_CAPSENSE_INIT_DEFAULT , ACMP_CapsenseInit() , CMU_ClockEnable() , cmuClock_HFPER , cmuClock_PRS , cmuClock_TIMER0 , and cmuClock_TIMER1 .

void TIMER0_IRQHandler ( void )

TIMER0 interrupt handler.

When TIMER0 expires the number of pulses on TIMER1 is inserted into channelValues. If this values is bigger than what is recorded in channelMaxValues, channelMaxValues is updated. Finally, the next ACMP channel is selected.

Definition at line 119 of file capsense.c .

References channelMaxValues , channelValues , and currentChannel .