Infineon Logo AIROC BTSDK v4.9 - Documentation
 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups
quadraturedriver.h File Reference

Define functions to access Quadrature driver. More...

Data Structures

struct  QuadRegistration
 Interrupt handler registration structure. Internal. More...
 
struct  QuadratureData
 Quadrature driver data. More...
 
struct  QuadratureState
 Quadrature runtime state. More...
 

Typedefs

typedef struct QuadRegistration QuadRegistration
 Interrupt handler registration structure. Internal.
 

Enumerations

enum  { ENABLE_PORT_2_PINS_AS_QUAD_INPUT = 0, ENABLE_PORT_0_PINS_AS_QUAD_INPUT = 1 }
 Defines a quadrature driver provided by the 20732 core.
 
enum  { QUADRATURE_LED_CONFIG_OPEN_SOURCE = 0x00, QUADRATURE_LED_CONFIG_SOURCE = 0x01, QUADRATURE_LED_CONFIG_OPEN_DRAIN = 0x02, QUADRATURE_LED_CONFIG_DRAIN = 0x03 }
 
enum  { QFLAG_SIGN = 0x0100, MIA_QFLAG_OVERFLOW_X = 0x01, MIA_QFLAG_OVERFLOW_Y = 0x02, MIA_QFLAG_OVERFLOW_Z = 0x04 }
 
enum  { CTRL_CLR_KEYS = 0x0004 }
 
enum  {
  CH_XY_128_KHZ_FIXED_SAMPLE_RATE = 0x00, CH_XY_64_KHZ_FIXED_SAMPLE_RATE = 0x01, CH_XY_32_KHZ_FIXED_SAMPLE_RATE = 0x02, CH_XY_16_KHZ_FIXED_SAMPLE_RATE = 0x03,
  CH_XY_SEL_LHL_PWM_RATE = 0x00, CH_XY_SEL_FIXED_RATE = 0x04, CH_XY_DISABLE = 0x00, CH_XY_ENABLE = 0x08,
  CH_Z_SAMPLE_ONCE_PER_LHL_PWM = 0x00, CH_Z_SAMPLE_ONCE_PER_2_LHL_PWM = 0x10, CH_Z_SAMPLE_ONCE_PER_4_LHL_PWM = 0x20, CH_Z_SAMPLE_ONCE_PER_8_LHL_PWM = 0x30,
  CH_Z_SAMPLE_ONCE_PER_16_LHL_PWM = 0x40, CH_Z_SAMPLE_ONCE_PER_32_LHL_PWM = 0x50, CH_Z_SAMPLE_ONCE_PER_64_LHL_PWM = 0x60, CH_Z_SAMPLE_ONCE_PER_128_LHL_PWM = 0x70,
  CH_Z_DISABLE = 0x00, CH_Z_ENABLE = 0x80
}
 
enum  {
  CONTROL_DISABLE = 0x00, CONTROL_ENABLE = 0x01, HW_CTRL_QUAD_INTERRUPT_ENABLE = 0x02, WAKEUP_INT_DISABLE = 0x00,
  WAKEUP_INT_ENABLE = 0x02, SCROLL_WITH_NO_DETENT_DISABLE = 0x00, SCROLL_WITH_NO_DETENT_ENABLE = 0x08
}
 
enum  { QUAD_ENABLE_X_LHL = 0x0400, QUAD_ENABLE_Y_LHL = 0x0200, QUAD_ENABLE_Z_LHL = 0x0100 }
 
enum  { CH_SEL_FOR_QUAD_INPUT_PORT0 = 0x0000, CH_SEL_FOR_QUAD_INPUT_PORT2 = 0x0002 }
 
enum  { HW_MIA_STATUS_QUAD_SET_MASK = 0x00010, HW_MIA_STATUS_QUAD_INT_SET_MASK = 0x00020 }
 
enum  { GPIO_OUTPUT_MUX_TO_QOC = 0x0020 }
 
enum  { INTERRUPT_CONFIG_DISABLE = 0x00, INTERRUPT_CONFIG_ENABLE = 0x01 }
 
enum  {
  QUADRATURE_RESERVED42_X_CTL_BIT_MASK = 0x01, QUADRATURE_RESERVED42_Y_CTL_BIT_MASK = 0x02, QUADRATURE_RESERVED42_Z_CTL_BIT_MASK = 0x04, QUADRATURE_RESERVED42_ENABLE_X = 0x01,
  QUADRATURE_RESERVED42_ENABLE_Y = 0x02, QUADRATURE_RESERVED42_ENABLE_Z = 0x04, QUADRATURE_RESERVED42_DISABLE_X = 0x00, QUADRATURE_RESERVED42_DISABLE_Y = 0x00,
  QUADRATURE_RESERVED42_DISABLE_Z = 0x00, QUADRATURE_RESERVED42_MAGIC_CONFIG = 0xB3
}
 
enum  { QUADRATURE_CONFIG_RESERVED42_X_INDEX = 0, QUADRATURE_CONFIG_RESERVED42_Y_INDEX = 1, QUADRATURE_CONFIG_RESERVED42_Z_INDEX = 2 }
 
enum  { RESERVED42_PORT0_MUX = 0x0010, RESERVED42_PORT2_MUX = 0x0020 }
 

Functions

INT16 quad_getXMotion (void)
 Return previously accumulated motion for X axis. More...
 
INT16 quad_getYMotion (void)
 Return previously accumulated motion for Y axis. More...
 
INT16 quad_getZMotion (void)
 Return previously accumulated motion for Z axis. More...
 
void quad_getXYMotion (INT16 *x, INT16 *y)
 Adds any currently accumulated X/Y motion to the X/Y output variables. More...
 
void quad_disable (void)
 Disable the quadrature interface. More...
 
void quad_restoreActivity (void)
 Configures the quadrature interface enable/wakeup functionality to what has been configured.
 
void quad_flushHwEvents (void)
 Clears the HW queue.
 
void quad_miaFreezeCallBack (void)
 MIA clock freeze notification. More...
 
void quad_miaUnfreezeCallBack (void)
 MIA clock unfreeze notification. Internal.
 
void quad_hwInit (void)
 Initialize the quadrature HW based on the configuration.
 
void quad_enableInterrupt (void)
 Enables quadrature interrupt. Internal.
 
void quad_disableInterrupt (void)
 Disables quadrature interrupt. Internal.
 
void quad_quadInterrupt (void)
 Handle Quadrature Interrupt and Notify the relevant subscriber.
 
void quad_registerForEventNotification (void(*userfn)(void *), void *userdata)
 Allows the app to register a callback when an event is detected. More...
 
void quad_init (void)
 Initialize the quadrature driver based on the configuration. More...
 
void quad_enableEventDetection (void)
 Configures upstream interrupt.
 
void quad_configurePortPins (void)
 Configure the pins for the specified port for quadrature operation. More...
 

Detailed Description

Define functions to access Quadrature driver.