Capacitive sense driver. More...
#include "em_device.h"
#include "capsense.h"
#include <stdint.h>
#include <stdbool.h>
#include "em_emu.h"
#include "em_acmp.h"
#include "capsenseconfig.h"
Go to the source code of this file.
Functions | |
void | TIMER0_IRQHandler (void) |
TIMER0 interrupt handler. | |
uint32_t | CAPSENSE_getVal (uint8_t channel) |
Get the current channelValue for a channel. | |
uint8_t | CAPSENSE_getSegmentChannel (uint8_t capSegment) |
Get the channelValue for a sensor segment. | |
uint8_t | CAPSENSE_getButtonChannel (void) |
Get the channelValue for a sensor segment. | |
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. | |
void | CAPSENSE_Sense (void) |
This function iterates through all the capsensors and reads and initiates a reading. | |
void | CAPSENSE_Init (void) |
Initializes the capacative sense system. | |
Variables | |
static volatile uint8_t | currentChannel |
The current channel we are sensing. | |
static const bool | channelsInUse [ACMP_CHANNELS] = CAPSENSE_CH_IN_USE |
A bit vector which represents the channels to iterate through. | |
static volatile uint32_t | channelValues [ACMP_CHANNELS] = { 0, 0, 0, 0, 0, 0, 0, 0 } |
This vector stores the latest read values from the ACMP. | |
static volatile uint32_t | channelMaxValues [ACMP_CHANNELS] = { 1, 1, 1, 1, 1, 1, 1, 1 } |
This stores the maximum values seen by a channel. |
Capacitive sense driver.
(C) Copyright 2012 Energy Micro AS, http://www.energymicro.com
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. 4. The source and compiled code may only be used on Energy Micro "EFM32" microcontrollers and "EFR4" radios.
DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Energy Micro AS has no obligation to support this Software. Energy Micro AS is providing the Software "AS IS", with no express or implied warranties of any kind, including, but not limited to, any implied warranties of merchantability or fitness for any particular purpose or warranties against infringement of any proprietary rights of a third party.
Energy Micro AS will not be liable for any consequential, incidental, or special damages, or any other relief, or for any claim by any third party, arising from your use of this Software.
Definition in file capsense.c.
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 74 of file capsense.c.
References channelMaxValues, channelValues, and currentChannel.
volatile uint32_t channelMaxValues[ACMP_CHANNELS] = { 1, 1, 1, 1, 1, 1, 1, 1 } [static] |
This stores the maximum values seen by a channel.
ACMP_CHANNELS | Vector of channels. |
Definition at line 64 of file capsense.c.
Referenced by CAPSENSE_getNormalizedVal(), CAPSENSE_getPressed(), CAPSENSE_getSliderPosition(), and TIMER0_IRQHandler().
const bool channelsInUse[ACMP_CHANNELS] = CAPSENSE_CH_IN_USE [static] |
A bit vector which represents the channels to iterate through.
ACMP_CHANNELS | Vector of channels. |
Definition at line 52 of file capsense.c.
Referenced by CAPSENSE_Sense().
volatile uint32_t channelValues[ACMP_CHANNELS] = { 0, 0, 0, 0, 0, 0, 0, 0 } [static] |
This vector stores the latest read values from the ACMP.
ACMP_CHANNELS | Vector of channels. |
Definition at line 58 of file capsense.c.
Referenced by CAPSENSE_getNormalizedVal(), CAPSENSE_getPressed(), CAPSENSE_getSliderPosition(), CAPSENSE_getVal(), and TIMER0_IRQHandler().
volatile uint8_t currentChannel [static] |
The current channel we are sensing.
Definition at line 46 of file capsense.c.
Referenced by CAPSENSE_Sense(), and TIMER0_IRQHandler().