Microchip® Advanced Software Framework

controller_evk1104.c File Reference
#include "controller.h"
#include "board.h"
#include "gpio.h"
#include "spi.h"
#include "qt60168.h"
#include "conf_qt60168.h"
#include "cycle_counter.h"

Macros

#define CLEAR_PRESSED_STATE(x)   controller_state &= ~STATE_##x##_PRESSED
 
#define CLEAR_RELEASED_STATE(x)   controller_state &= ~STATE_##x##_RELEASED
 
#define SET_PRESSED_STATE(x)   controller_state = (controller_state & ~STATE_##x##_RELEASED) | STATE_##x##_PRESSED
 
#define SET_RELEASED_STATE(x)   controller_state = (controller_state & ~STATE_##x##_PRESSED) | STATE_##x##_RELEASED
 

Enumerations

enum  {
  TOUCH_IDLE = 0,
  TOUCH_PRESS = 1,
  TOUCH_RELEASE = 2
}
 
enum  {
  STATE_IDLE = 0x0000,
  STATE_BACK_PRESSED = 0x0001,
  STATE_FCT1_PRESSED = 0x0002,
  STATE_FCT2_PRESSED = 0x0004,
  STATE_FCT3_PRESSED = 0x0008,
  STATE_BACK_RELEASED = 0x0010,
  STATE_FCT1_RELEASED = 0x0020,
  STATE_FCT2_RELEASED = 0x0040,
  STATE_FCT3_RELEASED = 0x0080,
  STATE_WHEEL_LEFT = 0x0100,
  STATE_WHEEL_RIGHT = 0x0200,
  STATE_BACK_PRESSING = 0x0400,
  STATE_BACK_LONG_PRESS = 0x0800
}
 

Functions

void controller_init (int cpu_hz, int hsb_hz, int pba_hz, int pbb_hz)
 
bool controller_key_back (void)
 
bool controller_key_fct1 (void)
 
bool controller_key_fct1_pressed (void)
 
bool controller_key_fct2 (void)
 
bool controller_key_fct2_pressed (void)
 
bool controller_key_fct3 (void)
 
bool controller_key_fct3_pressed (void)
 
bool controller_key_pressed (void)
 
bool controller_key_released (void)
 
bool controller_key_reset (void)
 
void controller_reset (void)
 
void controller_task (void)
 
bool controller_wheel_left (int wheel_inc)
 
bool controller_wheel_pressed (void)
 
bool controller_wheel_right (int wheel_inc)
 
static void qt60168_resources_init (int cpu_hz)
 Initializes QT60168 resources: GPIO and SPI. More...
 
static void set_wheel_left ()
 
static void set_wheel_right ()
 
static void update_controller_state (void)
 

Variables

static int controller_cpu_hz
 
static enum { ... }  controller_state = STATE_IDLE
 
static t_cpu_time long_press_timer
 
static enum { ... }  touch_states [QT60168_TOUCH_NUMBER_OF_SENSORS]
 
static int wheel_step_counter = 0
 

#define CLEAR_PRESSED_STATE (   x)    controller_state &= ~STATE_##x##_PRESSED
#define CLEAR_RELEASED_STATE (   x)    controller_state &= ~STATE_##x##_RELEASED
#define SET_PRESSED_STATE (   x)    controller_state = (controller_state & ~STATE_##x##_RELEASED) | STATE_##x##_PRESSED

Referenced by update_controller_state().

#define SET_RELEASED_STATE (   x)    controller_state = (controller_state & ~STATE_##x##_PRESSED) | STATE_##x##_RELEASED

Referenced by update_controller_state().

anonymous enum
Enumerator
TOUCH_IDLE 
TOUCH_PRESS 
TOUCH_RELEASE 
anonymous enum
Enumerator
STATE_IDLE 
STATE_BACK_PRESSED 
STATE_FCT1_PRESSED 
STATE_FCT2_PRESSED 
STATE_FCT3_PRESSED 
STATE_BACK_RELEASED 
STATE_FCT1_RELEASED 
STATE_FCT2_RELEASED 
STATE_FCT3_RELEASED 
STATE_WHEEL_LEFT 
STATE_WHEEL_RIGHT 
STATE_BACK_PRESSING 
STATE_BACK_LONG_PRESS 

void controller_init ( int  cpu_hz,
int  hsb_hz,
int  pba_hz,
int  pbb_hz 
)
bool controller_key_back ( void  )
bool controller_key_fct1 ( void  )
bool controller_key_fct1_pressed ( void  )
bool controller_key_fct2 ( void  )
bool controller_key_fct2_pressed ( void  )
bool controller_key_fct3 ( void  )
bool controller_key_fct3_pressed ( void  )

References controller_state, and STATE_FCT3_PRESSED.

Referenced by state_machine_task().

bool controller_key_pressed ( void  )

References controller_state, and STATE_IDLE.

bool controller_key_reset ( void  )
bool controller_wheel_pressed ( void  )
static void set_wheel_left ( )
inlinestatic
static void set_wheel_right ( )
inlinestatic

int controller_cpu_hz
static
t_cpu_time long_press_timer
static