caplesense.c File Reference

Capacitive sense driver. More...

#include "em_device.h"
#include "caplesense.h"
#include <stdint.h>
#include <stdbool.h>
#include "em_emu.h"
#include "em_acmp.h"
#include "em_assert.h"
#include "em_cmu.h"
#include "em_gpio.h"
#include "em_int.h"
#include "em_lesense.h"
#include "caplesenseconfig.h"
Include dependency graph for caplesense.c:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void CAPLESENSE_setupCMU (void)
 Prototypes.
void CAPLESENSE_setupGPIO (void)
 Setup the GPIO.
void CAPLESENSE_setupACMP (void)
 Setup the ACMP.
void CAPLESENSE_setupLESENSE (bool sleep)
 Setup the LESENSE for capavitive sensing.
void CAPLESENSE_setupCallbacks (void(*scanCb)(void), void(*chCb)(void))
 LESENSE callback setup.
void LESENSE_IRQHandler (void)
 LESENSE interrupt handler.
uint8_t CAPLESENSE_getSegmentChannel (uint8_t capSegment)
 Get the channelValue for a sensor segment.
uint32_t CAPLESENSE_getVal (uint8_t channel)
 Get the current channelValue for a channel.
uint32_t CAPLESENSE_getNormalizedVal (uint8_t channel)
 Get the current normalized channelValue for a channel.
int32_t CAPLESENSE_getSliderPosition (void)
 Get the position of the slider.
void CAPLESENSE_Sleep (void)
 Send the capacative sense system to sleep mode.
void CAPLESENSE_Init (bool sleep)
 Initializes the capacative sense system without LESENSE.

Variables

static volatile uint32_t channelValues [LESENSE_CHANNELS]
 This vector stores the latest read values from LESENSE.
static volatile uint32_t channelMaxValues [LESENSE_CHANNELS]
 This stores the maximum values seen by a channel.
static const bool channelsInUse [LESENSE_CHANNELS] = LESENSE_CAPSENSE_CH_IN_USE
 A bit vector which represents the channels to iterate through.
static void(* lesenseScanCb )(void)
 Local variables.
static void(* lesenseChCb )(void)
 Callback function for LESENSE interrupts.
static volatile uint8_t currentChannel
 The current channel we are sensing.

Detailed Description

Capacitive sense driver.

Version:
3.20.5

License

(C) Copyright 2014 Silicon Labs, http://www.silabs.com

This file is licensensed under the Silabs License Agreement. See the file "Silabs_License_Agreement.txt" for details. Before using this software for any purpose, you must agree to the terms of that agreement.

Definition in file caplesense.c.


Function Documentation

void CAPLESENSE_setupACMP ( void   ) 

Setup the ACMP.

Definition at line 141 of file caplesense.c.

Referenced by CAPLESENSE_Init().

Here is the caller graph for this function:

void CAPLESENSE_setupCMU ( void   ) 

Prototypes.

Setup the CMU.

Definition at line 91 of file caplesense.c.

Referenced by CAPLESENSE_Init().

Here is the caller graph for this function:

void CAPLESENSE_setupGPIO ( void   ) 

Setup the GPIO.

Definition at line 124 of file caplesense.c.

Referenced by CAPLESENSE_Init().

Here is the caller graph for this function:

void LESENSE_IRQHandler ( void   ) 

LESENSE interrupt handler.

Definition at line 352 of file caplesense.c.

References channelMaxValues, channelsInUse, channelValues, currentChannel, lesenseChCb, and lesenseScanCb.


Variable Documentation

volatile uint32_t channelMaxValues[LESENSE_CHANNELS] [static]
Initial value:
{

  1, 1, 1, 1, 1, 1, 1, 1,

  1, 1, 1, 1, 1, 1, 1, 1
}

This stores the maximum values seen by a channel.

Parameters:
LESENSE_CHANNELS Vector of channels.

Definition at line 53 of file caplesense.c.

Referenced by CAPLESENSE_getNormalizedVal(), CAPLESENSE_getSliderPosition(), CAPSENSE_getNormalizedVal(), CAPSENSE_getPressed(), CAPSENSE_getSliderPosition(), LESENSE_IRQHandler(), and TIMER0_IRQHandler().

const bool channelsInUse[LESENSE_CHANNELS] = LESENSE_CAPSENSE_CH_IN_USE [static]

A bit vector which represents the channels to iterate through.

Parameters:
LESENSE_CHANNELS Vector of channels.

Definition at line 65 of file caplesense.c.

Referenced by CAPSENSE_Sense(), and LESENSE_IRQHandler().

volatile uint32_t channelValues[LESENSE_CHANNELS] [static]
Initial value:
{

  0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0
}

This vector stores the latest read values from LESENSE.

Parameters:
LESENSE_CHANNELS Vector of channels.

Definition at line 40 of file caplesense.c.

Referenced by CAPLESENSE_getNormalizedVal(), CAPLESENSE_getSliderPosition(), CAPLESENSE_getVal(), CAPSENSE_getNormalizedVal(), CAPSENSE_getPressed(), CAPSENSE_getSliderPosition(), CAPSENSE_getVal(), LESENSE_IRQHandler(), and TIMER0_IRQHandler().

volatile uint8_t currentChannel [static]

The current channel we are sensing.

Definition at line 84 of file caplesense.c.

Referenced by CAPSENSE_Sense(), LESENSE_IRQHandler(), and TIMER0_IRQHandler().

void(* lesenseChCb)(void) [static]

Callback function for LESENSE interrupts.

Definition at line 81 of file caplesense.c.

Referenced by CAPLESENSE_setupCallbacks(), and LESENSE_IRQHandler().

void(* lesenseScanCb)(void) [static]

Local variables.

Callback function for LESENSE interrupts.

Definition at line 79 of file caplesense.c.

Referenced by CAPLESENSE_setupCallbacks(), and LESENSE_IRQHandler().