Microchip® Advanced Software Framework

controller_evk1105.c File Reference
#include "controller.h"
#include "board.h"
#include "gpio.h"
#include "cycle_counter.h"
#include "qt1081.h"
#include "intc.h"

Macros

#define CLEAR_JOYSTICK_KEY_ALL()   (joystick_status = JOYSTICK_STATUS_IDLE)
 
#define CLEAR_JOYSTICK_KEY_DOWN()   (joystick_status &= ~JOYSTICK_STATUS_DOWN)
 
#define CLEAR_JOYSTICK_KEY_LEFT()   (joystick_status &= ~JOYSTICK_STATUS_LEFT)
 
#define CLEAR_JOYSTICK_KEY_PRESSED()   (joystick_status &= ~JOYSTICK_STATUS_PRESSED)
 
#define CLEAR_JOYSTICK_KEY_RIGHT()   (joystick_status &= ~JOYSTICK_STATUS_RIGHT)
 
#define CLEAR_JOYSTICK_KEY_UP()   (joystick_status &= ~JOYSTICK_STATUS_UP)
 
#define CLEAR_JOYSTICK_RELEASED_KEY_DOWN()   (joystick_status &= ~JOYSTICK_STATUS_RELEASED_DOWN)
 
#define CLEAR_JOYSTICK_RELEASED_KEY_LEFT()   (joystick_status &= ~JOYSTICK_STATUS_RELEASED_LEFT)
 
#define CLEAR_JOYSTICK_RELEASED_KEY_PRESSED()   (joystick_status &= ~JOYSTICK_STATUS_RELEASED_PRESSED)
 
#define CLEAR_JOYSTICK_RELEASED_KEY_RIGHT()   (joystick_status &= ~JOYSTICK_STATUS_RELEASED_RIGHT)
 
#define CLEAR_JOYSTICK_RELEASED_KEY_UP()   (joystick_status &= ~JOYSTICK_STATUS_RELEASED_UP)
 
#define IS_JOYSTICK_KEY_DOWN()   (joystick_status & JOYSTICK_STATUS_DOWN)
 
#define IS_JOYSTICK_KEY_LEFT()   (joystick_status & JOYSTICK_STATUS_LEFT)
 
#define IS_JOYSTICK_KEY_PRESSED()   (joystick_status & JOYSTICK_STATUS_PRESSED)
 
#define IS_JOYSTICK_KEY_RIGHT()   (joystick_status & JOYSTICK_STATUS_RIGHT)
 
#define IS_JOYSTICK_KEY_UP()   (joystick_status & JOYSTICK_STATUS_UP)
 
#define IS_JOYSTICK_ONLY_KEY_DOWN()   ((joystick_status == JOYSTICK_STATUS_DOWN) & JOYSTICK_STATUS_PRESSED_MASK)
 
#define IS_JOYSTICK_ONLY_KEY_LEFT()   ((joystick_status == JOYSTICK_STATUS_LEFT) & JOYSTICK_STATUS_PRESSED_MASK)
 
#define IS_JOYSTICK_ONLY_KEY_PRESSED()   ((joystick_status == JOYSTICK_STATUS_PRESSED) & JOYSTICK_STATUS_PRESSED_MASK)
 
#define IS_JOYSTICK_ONLY_KEY_RIGHT()   ((joystick_status == JOYSTICK_STATUS_RIGHT) & JOYSTICK_STATUS_PRESSED_MASK)
 
#define IS_JOYSTICK_ONLY_KEY_UP()   ((joystick_status == JOYSTICK_STATUS_UP) & JOYSTICK_STATUS_PRESSED_MASK)
 
#define IS_JOYSTICK_ONLY_RELEASED_KEY_DOWN()   ((joystick_status & JOYSTICK_STATUS_RELEASED_DOWN) & JOYSTICK_STATUS_RELEASED_MASK)
 
#define IS_JOYSTICK_ONLY_RELEASED_KEY_LEFT()   ((joystick_status & JOYSTICK_STATUS_RELEASED_LEFT) & JOYSTICK_STATUS_RELEASED_MASK)
 
#define IS_JOYSTICK_ONLY_RELEASED_KEY_PRESSED()   ((joystick_status & JOYSTICK_STATUS_RELEASED_PRESSED) & JOYSTICK_STATUS_RELEASED_MASK)
 
#define IS_JOYSTICK_ONLY_RELEASED_KEY_RIGHT()   ((joystick_status & JOYSTICK_STATUS_RELEASED_RIGHT) & JOYSTICK_STATUS_RELEASED_MASK)
 
#define IS_JOYSTICK_ONLY_RELEASED_KEY_UP()   ((joystick_status & JOYSTICK_STATUS_RELEASED_UP) & JOYSTICK_STATUS_RELEASED_MASK)
 
#define IS_JOYSTICK_RELEASED_KEY_DOWN()   (joystick_status & JOYSTICK_STATUS_RELEASED_DOWN)
 
#define IS_JOYSTICK_RELEASED_KEY_LEFT()   (joystick_status & JOYSTICK_STATUS_RELEASED_LEFT)
 
#define IS_JOYSTICK_RELEASED_KEY_PRESSED()   (joystick_status & JOYSTICK_STATUS_RELEASED_PRESSED)
 
#define IS_JOYSTICK_RELEASED_KEY_RIGHT()   (joystick_status & JOYSTICK_STATUS_RELEASED_RIGHT)
 
#define IS_JOYSTICK_RELEASED_KEY_UP()   (joystick_status & JOYSTICK_STATUS_RELEASED_UP)
 
#define JOYSTICK_KEY_DEBOUNCE_MS   200
 

Enumerations

enum  joystick_status_t {
  JOYSTICK_STATUS_IDLE = 0x00000000,
  JOYSTICK_STATUS_UP = 0x00000001,
  JOYSTICK_STATUS_DOWN = 0x00000002,
  JOYSTICK_STATUS_RIGHT = 0x00000004,
  JOYSTICK_STATUS_LEFT = 0x00000008,
  JOYSTICK_STATUS_PRESSED = 0x00000010,
  JOYSTICK_STATUS_PRESSED_MASK = 0x0000FFFF,
  JOYSTICK_STATUS_RELEASED_UP = 0x00010000,
  JOYSTICK_STATUS_RELEASED_DOWN = 0x00020000,
  JOYSTICK_STATUS_RELEASED_RIGHT = 0x00040000,
  JOYSTICK_STATUS_RELEASED_LEFT = 0x00080000,
  JOYSTICK_STATUS_RELEASED_PRESSED = 0x00100000,
  JOYSTICK_STATUS_RELEASED_MASK = 0xFFFF0000
}
 

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 bool is_joystick_left (void)
 
static bool is_joystick_released_down (void)
 
static bool is_joystick_released_left (void)
 
static bool is_joystick_released_pressed (void)
 
static bool is_joystick_released_right (void)
 
static bool is_joystick_released_up (void)
 
static bool is_joystick_right (void)
 
static void manage_button_isr (int pin, enum joystick_status_t status_pressed, enum joystick_status_t status_released)
 
void touch_button_isr (void)
 

Variables

static t_cpu_time joystick_key_sensibility_timer
 
static enum joystick_status_t joystick_status = JOYSTICK_STATUS_IDLE
 
static bool no_store = false
 
static U32 static_fcpu_hz
 

#define CLEAR_JOYSTICK_KEY_ALL ( )    (joystick_status = JOYSTICK_STATUS_IDLE)
#define CLEAR_JOYSTICK_KEY_DOWN ( )    (joystick_status &= ~JOYSTICK_STATUS_DOWN)
#define CLEAR_JOYSTICK_KEY_LEFT ( )    (joystick_status &= ~JOYSTICK_STATUS_LEFT)
#define CLEAR_JOYSTICK_KEY_PRESSED ( )    (joystick_status &= ~JOYSTICK_STATUS_PRESSED)
#define CLEAR_JOYSTICK_KEY_RIGHT ( )    (joystick_status &= ~JOYSTICK_STATUS_RIGHT)
#define CLEAR_JOYSTICK_KEY_UP ( )    (joystick_status &= ~JOYSTICK_STATUS_UP)
#define CLEAR_JOYSTICK_RELEASED_KEY_DOWN ( )    (joystick_status &= ~JOYSTICK_STATUS_RELEASED_DOWN)
#define CLEAR_JOYSTICK_RELEASED_KEY_LEFT ( )    (joystick_status &= ~JOYSTICK_STATUS_RELEASED_LEFT)
#define CLEAR_JOYSTICK_RELEASED_KEY_PRESSED ( )    (joystick_status &= ~JOYSTICK_STATUS_RELEASED_PRESSED)
#define CLEAR_JOYSTICK_RELEASED_KEY_RIGHT ( )    (joystick_status &= ~JOYSTICK_STATUS_RELEASED_RIGHT)
#define CLEAR_JOYSTICK_RELEASED_KEY_UP ( )    (joystick_status &= ~JOYSTICK_STATUS_RELEASED_UP)

Referenced by is_joystick_released_up().

#define IS_JOYSTICK_KEY_LEFT ( )    (joystick_status & JOYSTICK_STATUS_LEFT)
#define IS_JOYSTICK_KEY_PRESSED ( )    (joystick_status & JOYSTICK_STATUS_PRESSED)
#define IS_JOYSTICK_KEY_RIGHT ( )    (joystick_status & JOYSTICK_STATUS_RIGHT)
#define IS_JOYSTICK_KEY_UP ( )    (joystick_status & JOYSTICK_STATUS_UP)
#define IS_JOYSTICK_ONLY_KEY_DOWN ( )    ((joystick_status == JOYSTICK_STATUS_DOWN) & JOYSTICK_STATUS_PRESSED_MASK)
#define IS_JOYSTICK_ONLY_KEY_LEFT ( )    ((joystick_status == JOYSTICK_STATUS_LEFT) & JOYSTICK_STATUS_PRESSED_MASK)
#define IS_JOYSTICK_ONLY_KEY_PRESSED ( )    ((joystick_status == JOYSTICK_STATUS_PRESSED) & JOYSTICK_STATUS_PRESSED_MASK)
#define IS_JOYSTICK_ONLY_KEY_RIGHT ( )    ((joystick_status == JOYSTICK_STATUS_RIGHT) & JOYSTICK_STATUS_PRESSED_MASK)
#define IS_JOYSTICK_ONLY_KEY_UP ( )    ((joystick_status == JOYSTICK_STATUS_UP) & JOYSTICK_STATUS_PRESSED_MASK)
#define IS_JOYSTICK_ONLY_RELEASED_KEY_DOWN ( )    ((joystick_status & JOYSTICK_STATUS_RELEASED_DOWN) & JOYSTICK_STATUS_RELEASED_MASK)
#define IS_JOYSTICK_ONLY_RELEASED_KEY_LEFT ( )    ((joystick_status & JOYSTICK_STATUS_RELEASED_LEFT) & JOYSTICK_STATUS_RELEASED_MASK)
#define IS_JOYSTICK_ONLY_RELEASED_KEY_PRESSED ( )    ((joystick_status & JOYSTICK_STATUS_RELEASED_PRESSED) & JOYSTICK_STATUS_RELEASED_MASK)
#define IS_JOYSTICK_ONLY_RELEASED_KEY_RIGHT ( )    ((joystick_status & JOYSTICK_STATUS_RELEASED_RIGHT) & JOYSTICK_STATUS_RELEASED_MASK)
#define IS_JOYSTICK_ONLY_RELEASED_KEY_UP ( )    ((joystick_status & JOYSTICK_STATUS_RELEASED_UP) & JOYSTICK_STATUS_RELEASED_MASK)

Referenced by is_joystick_released_up().

#define IS_JOYSTICK_RELEASED_KEY_DOWN ( )    (joystick_status & JOYSTICK_STATUS_RELEASED_DOWN)

Referenced by controller_key_released().

#define IS_JOYSTICK_RELEASED_KEY_LEFT ( )    (joystick_status & JOYSTICK_STATUS_RELEASED_LEFT)

Referenced by controller_key_released().

#define IS_JOYSTICK_RELEASED_KEY_PRESSED ( )    (joystick_status & JOYSTICK_STATUS_RELEASED_PRESSED)

Referenced by controller_key_released().

#define IS_JOYSTICK_RELEASED_KEY_RIGHT ( )    (joystick_status & JOYSTICK_STATUS_RELEASED_RIGHT)

Referenced by controller_key_released().

#define IS_JOYSTICK_RELEASED_KEY_UP ( )    (joystick_status & JOYSTICK_STATUS_RELEASED_UP)

Referenced by controller_key_released().

Enumerator
JOYSTICK_STATUS_IDLE 
JOYSTICK_STATUS_UP 
JOYSTICK_STATUS_DOWN 
JOYSTICK_STATUS_RIGHT 
JOYSTICK_STATUS_LEFT 
JOYSTICK_STATUS_PRESSED 
JOYSTICK_STATUS_PRESSED_MASK 
JOYSTICK_STATUS_RELEASED_UP 
JOYSTICK_STATUS_RELEASED_DOWN 
JOYSTICK_STATUS_RELEASED_RIGHT 
JOYSTICK_STATUS_RELEASED_LEFT 
JOYSTICK_STATUS_RELEASED_PRESSED 
JOYSTICK_STATUS_RELEASED_MASK 

bool controller_key_fct1 ( void  )

References is_joystick_released_up().

Referenced by state_machine_task().

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 IS_JOYSTICK_KEY_DOWN.

Referenced by state_machine_task().

bool controller_key_reset ( void  )

Referenced by state_machine_task().

void controller_reset ( void  )
void controller_task ( void  )

Referenced by main().

bool controller_wheel_left ( int  wheel_inc)
bool controller_wheel_pressed ( void  )
bool controller_wheel_right ( int  wheel_inc)
static void manage_button_isr ( int  pin,
enum joystick_status_t  status_pressed,
enum joystick_status_t  status_released 
)
inlinestatic

t_cpu_time joystick_key_sensibility_timer
static
enum joystick_status_t joystick_status = JOYSTICK_STATUS_IDLE
static

Referenced by manage_button_isr().

bool no_store = false
static