This file contains the QTouch Libary API interface for AVR 8-bit, AVR 32-bit and Atmel ARM QMatrix and QTouch method Capacitive Touch acquisition.
#include "parts.h"
#include "touch_config.h"
#include <stdint.h>
#include <stdbool.h>
#include <stdlib.h>
Data Structures | |
struct | qt_lib_sig_info_t |
This will be used to get the library information from the library. More... | |
struct | tag_qt_touch_lib_config_data_t |
post processing configuration data that is received from the debug interface. More... | |
struct | tag_qt_touch_lib_measure_data_t |
measured touch data that is sent for the debugging and fine tunning. More... | |
struct | tag_qt_touch_status_t |
The state of the library sensors. More... | |
struct | tag_sensor_t |
Macros | |
#define | BURST_FUNC_NAME BURST_JOIN( _STATIC_PORT_PIN_CONF_, QTOUCH_SNS_PORT_COUNT, INTRABURST_1, INTRABURST_2, _POWER_OPTIMIZATION_, QTOUCH_PIN_CONF ) |
Build pointer to correct burst function. More... | |
#define | BURST_JOIN(static_flag, num_ports, intra1, intra2, pow_opt, qtouch_pin_conf) JOIN4( static_flag, num_ports, intra1, intra2, pow_opt, qtouch_pin_conf ) |
#define | CALCULATE_MASKS NULL |
This part of the code below is used for library selection. More... | |
#define | CONCAT(A, B, C) JOIN1( A, B, C ) |
#define | JOIN(x, y) x ## y |
QTouch libraries are supplied built with a range of charge times. More... | |
#define | JOIN1(A, B, C) A ## B ## C |
#define | JOIN4(a, b, c, d, e, f) burst_ ## a ## _ ## b ## _ ## c ## d ## _ ## e ##_ ## f |
Macros for string concatenation. More... | |
#define | qt_init_sensing() qt_init_sensing_with_burst( BURST_FUNC_NAME ,CALCULATE_MASKS) |
initialise touch sensing. More... | |
#define | QT_MAX_NUM_ROTORS_SLIDERS 0 |
#define | QT_NUM_SENSOR_STATE_BYTES ( ( QT_NUM_CHANNELS + 7u ) / 8u ) |
The number of bytes required to report the maximum possible number of sensors. More... | |
#define | QTLIB_BURST_AGAIN (uint16_t) 0x0100 |
indicating that reburst is needed to resolve in FILTERIN or FILTEROUT or RECALIBRATE state. More... | |
#define | QTLIB_CHANNEL_REF_CHANGE (uint16_t) 0x0008 |
indicating that at least one reference value has changed since last call to measure_sensors. More... | |
#define | QTLIB_IN_DETECT (uint16_t) 0x0001 |
indicating that at least one sensor is in detect. More... | |
#define | QTLIB_NO_ACTIVITY (uint16_t) 0x0000 |
Status flags used with debug. More... | |
#define | QTLIB_RESOLVE_CAL (uint16_t) 0x0200 |
indicating that reburst is needed to resolve in CALIBRATION. More... | |
#define | QTLIB_RESOLVE_DI (uint16_t) 0x0800 |
indicating that reburst is needed to resolve in RECAL. More... | |
#define | QTLIB_RESOLVE_FILTERIN (uint16_t) 0x0400 |
indicating that reburst is needed to resolve in FILTERING. More... | |
#define | QTLIB_RESOLVE_POS_RECAL (uint16_t) 0x1000 |
indicating that reburst is needed to resolve in RECAL. More... | |
#define | QTLIB_ROTOR_SLIDER_POS_CHANGE (uint16_t) 0x0004 |
indicating that at least one rotor slider has changed position since last call to measure_sensors. More... | |
#define | QTLIB_STATUS_CHANGE (uint16_t) 0x0002 |
indicating that at least one sensor haschanged ON/OFF state since last call to measure_sensors. More... | |
#define | REG(REGISTER, SIDE) JOIN( REGISTER, SIDE ) |
Macro to build register writes for controlling ports. More... | |
#define | TOUCH_DATA_T uint8_t |
Typedefs | |
typedef enum tag_aks_group_t | aks_group_t |
Which AKS group, if any, a sensor is in. More... | |
typedef enum tag_channel_t | channel_t |
The channel(s) in a sensor. More... | |
typedef enum tag_hysteresis_t | hysteresis_t |
A sensor detection hysteresis value. More... | |
typedef struct qt_lib_sig_info_t | qt_lib_siginfo_t |
This will be used to get the library information from the library. More... | |
typedef struct tag_qt_touch_lib_config_data_t | qt_touch_lib_config_data_t |
post processing configuration data that is received from the debug interface. More... | |
typedef struct tag_qt_touch_lib_measure_data_t | qt_touch_lib_measure_data_t |
measured touch data that is sent for the debugging and fine tunning. More... | |
typedef struct tag_qt_touch_status_t | qt_touch_status_t |
The state of the library sensors. More... | |
typedef enum tag_recal_threshold_t | recal_threshold_t |
A sensor recalibration threshold. More... | |
typedef enum tag_resolution_t | resolution_t |
For rotors and sliders, the resolution of the reported angle or position. More... | |
typedef struct tag_sensor_t | sensor_t |
typedef enum tag_sensor_type_t | sensor_type_t |
Options for the sensor types available. More... | |
typedef uint8_t | threshold_t |
QMATRIX Start. More... | |
Enumerations | |
enum | tag_aks_group_t { NO_AKS_GROUP, AKS_GROUP_1, AKS_GROUP_2, AKS_GROUP_3, AKS_GROUP_4, AKS_GROUP_5, AKS_GROUP_6, AKS_GROUP_7 } |
Which AKS group, if any, a sensor is in. More... | |
enum | tag_channel_t { CHANNEL_0, CHANNEL_1, CHANNEL_2, CHANNEL_3 } |
The channel(s) in a sensor. More... | |
enum | tag_hysteresis_t { HYST_50, HYST_25, HYST_12_5, HYST_6_25 } |
A sensor detection hysteresis value. More... | |
enum | tag_recal_threshold_t { RECAL_100 = 0, RECAL_50, RECAL_25, RECAL_12_5, RECAL_6_25 } |
A sensor recalibration threshold. More... | |
enum | tag_resolution_t { RES_1_BIT, RES_2_BIT, RES_3_BIT, RES_4_BIT, RES_5_BIT, RES_6_BIT, RES_7_BIT, RES_8_BIT } |
For rotors and sliders, the resolution of the reported angle or position. More... | |
enum | tag_sensor_type_t { SENSOR_TYPE_UNASSIGNED, SENSOR_TYPE_KEY, SENSOR_TYPE_ROTOR, SENSOR_TYPE_SLIDER } |
Options for the sensor types available. More... | |
Functions | |
void | BURST_FUNC_NAME (TOUCH_DATA_T mask_index) |
Burst function prototype. The code itself is stored in the touch library. More... | |
void | calc_masks (void) |
void | qt_calibrate_sensing (void) |
calibrate touch sensing. More... | |
void | qt_enable_key (channel_t channel, aks_group_t aks_group, threshold_t detect_threshold, hysteresis_t detect_hysteresis) |
enable a key sensor. More... | |
void | qt_get_library_sig (qt_lib_siginfo_t *lib_sig_ptr) |
Get the library signature. More... | |
int16_t | qt_get_sensor_delta (uint8_t sensor) |
get the current delta on the specified sensor. More... | |
void | qt_init_sensing_with_burst (void(*burst_function)(TOUCH_DATA_T mask_index), void(*calculate_masks)(void)) |
uint16_t | qt_measure_sensors (uint16_t current_time_ms) |
measure touch sensors. More... | |
void | qt_reset_sensing (void) |
reset touch sensing. More... | |
Variables | |
void(* | burst_proc )(TOUCH_DATA_T mask_index) |
Function pointer used for bursting. More... | |
uint16_t | lib_status_flags |
variable holding the status flags. More... | |
qt_touch_lib_config_data_t | qt_config_data |
This configuration data structure parameters if needs to be changed will be changed in the qt_set_parameters function. More... | |
void(* | qt_filter_callback )(void) |
This function is called after the library has made capacitive measurements, but before it has processed them. The user can use this hook to apply filter functions to the measured signal values. More... | |
qt_touch_lib_measure_data_t | qt_measure_data |
measurement data. More... | |
uint16_t | qt_measurement_period_msec |
timer period in msec. More... | |
sensor_t | sensors [4] |
the library sensors. More... | |