controller_evk1105.c File Reference


Detailed Description

Controller.

Author:
Atmel Corporation: http://www.atmel.com
Support and FAQ: http://support.atmel.no/

Definition in file controller_evk1105.c.

#include "controller.h"
#include "board.h"
#include "gpio.h"
#include "cycle_counter.h"
#include "qt1081.h"
#include "intc.h"

Go to the source code of this file.

Defines

#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
static bool no_store = false
static U32 static_fcpu_hz


Define Documentation

 
#define CLEAR_JOYSTICK_KEY_ALL (  )     (joystick_status = JOYSTICK_STATUS_IDLE)

Definition at line 81 of file controller_evk1105.c.

 
#define CLEAR_JOYSTICK_KEY_DOWN (  )     (joystick_status &= ~JOYSTICK_STATUS_DOWN)

Definition at line 84 of file controller_evk1105.c.

 
#define CLEAR_JOYSTICK_KEY_LEFT (  )     (joystick_status &= ~JOYSTICK_STATUS_LEFT)

Definition at line 86 of file controller_evk1105.c.

 
#define CLEAR_JOYSTICK_KEY_PRESSED (  )     (joystick_status &= ~JOYSTICK_STATUS_PRESSED)

Definition at line 87 of file controller_evk1105.c.

 
#define CLEAR_JOYSTICK_KEY_RIGHT (  )     (joystick_status &= ~JOYSTICK_STATUS_RIGHT)

Definition at line 85 of file controller_evk1105.c.

 
#define CLEAR_JOYSTICK_KEY_UP (  )     (joystick_status &= ~JOYSTICK_STATUS_UP)

Definition at line 83 of file controller_evk1105.c.

 
#define CLEAR_JOYSTICK_RELEASED_KEY_DOWN (  )     (joystick_status &= ~JOYSTICK_STATUS_RELEASED_DOWN)

Definition at line 90 of file controller_evk1105.c.

Referenced by is_joystick_released_down().

 
#define CLEAR_JOYSTICK_RELEASED_KEY_LEFT (  )     (joystick_status &= ~JOYSTICK_STATUS_RELEASED_LEFT)

Definition at line 92 of file controller_evk1105.c.

Referenced by is_joystick_released_left().

 
#define CLEAR_JOYSTICK_RELEASED_KEY_PRESSED (  )     (joystick_status &= ~JOYSTICK_STATUS_RELEASED_PRESSED)

Definition at line 93 of file controller_evk1105.c.

Referenced by is_joystick_released_pressed().

 
#define CLEAR_JOYSTICK_RELEASED_KEY_RIGHT (  )     (joystick_status &= ~JOYSTICK_STATUS_RELEASED_RIGHT)

Definition at line 91 of file controller_evk1105.c.

Referenced by is_joystick_released_right().

 
#define CLEAR_JOYSTICK_RELEASED_KEY_UP (  )     (joystick_status &= ~JOYSTICK_STATUS_RELEASED_UP)

Definition at line 89 of file controller_evk1105.c.

Referenced by is_joystick_released_up().

 
#define IS_JOYSTICK_KEY_DOWN (  )     (joystick_status & JOYSTICK_STATUS_DOWN)

 
#define IS_JOYSTICK_KEY_LEFT (  )     (joystick_status & JOYSTICK_STATUS_LEFT)

Definition at line 60 of file controller_evk1105.c.

Referenced by controller_key_pressed(), and is_joystick_left().

 
#define IS_JOYSTICK_KEY_PRESSED (  )     (joystick_status & JOYSTICK_STATUS_PRESSED)

 
#define IS_JOYSTICK_KEY_RIGHT (  )     (joystick_status & JOYSTICK_STATUS_RIGHT)

Definition at line 59 of file controller_evk1105.c.

Referenced by controller_key_pressed(), and is_joystick_right().

 
#define IS_JOYSTICK_KEY_UP (  )     (joystick_status & JOYSTICK_STATUS_UP)

Definition at line 57 of file controller_evk1105.c.

Referenced by controller_key_pressed(), and touch_button_isr().

 
#define IS_JOYSTICK_ONLY_KEY_DOWN (  )     ((joystick_status == JOYSTICK_STATUS_DOWN) & JOYSTICK_STATUS_PRESSED_MASK)

Definition at line 64 of file controller_evk1105.c.

 
#define IS_JOYSTICK_ONLY_KEY_LEFT (  )     ((joystick_status == JOYSTICK_STATUS_LEFT) & JOYSTICK_STATUS_PRESSED_MASK)

Definition at line 66 of file controller_evk1105.c.

 
#define IS_JOYSTICK_ONLY_KEY_PRESSED (  )     ((joystick_status == JOYSTICK_STATUS_PRESSED) & JOYSTICK_STATUS_PRESSED_MASK)

Definition at line 67 of file controller_evk1105.c.

 
#define IS_JOYSTICK_ONLY_KEY_RIGHT (  )     ((joystick_status == JOYSTICK_STATUS_RIGHT) & JOYSTICK_STATUS_PRESSED_MASK)

Definition at line 65 of file controller_evk1105.c.

 
#define IS_JOYSTICK_ONLY_KEY_UP (  )     ((joystick_status == JOYSTICK_STATUS_UP) & JOYSTICK_STATUS_PRESSED_MASK)

Definition at line 63 of file controller_evk1105.c.

 
#define IS_JOYSTICK_ONLY_RELEASED_KEY_DOWN (  )     ((joystick_status & JOYSTICK_STATUS_RELEASED_DOWN) & JOYSTICK_STATUS_RELEASED_MASK)

Definition at line 76 of file controller_evk1105.c.

Referenced by is_joystick_released_down().

 
#define IS_JOYSTICK_ONLY_RELEASED_KEY_LEFT (  )     ((joystick_status & JOYSTICK_STATUS_RELEASED_LEFT) & JOYSTICK_STATUS_RELEASED_MASK)

Definition at line 78 of file controller_evk1105.c.

Referenced by is_joystick_released_left().

 
#define IS_JOYSTICK_ONLY_RELEASED_KEY_PRESSED (  )     ((joystick_status & JOYSTICK_STATUS_RELEASED_PRESSED) & JOYSTICK_STATUS_RELEASED_MASK)

Definition at line 79 of file controller_evk1105.c.

Referenced by is_joystick_released_pressed().

 
#define IS_JOYSTICK_ONLY_RELEASED_KEY_RIGHT (  )     ((joystick_status & JOYSTICK_STATUS_RELEASED_RIGHT) & JOYSTICK_STATUS_RELEASED_MASK)

Definition at line 77 of file controller_evk1105.c.

Referenced by is_joystick_released_right().

 
#define IS_JOYSTICK_ONLY_RELEASED_KEY_UP (  )     ((joystick_status & JOYSTICK_STATUS_RELEASED_UP) & JOYSTICK_STATUS_RELEASED_MASK)

Definition at line 75 of file controller_evk1105.c.

Referenced by is_joystick_released_up().

 
#define IS_JOYSTICK_RELEASED_KEY_DOWN (  )     (joystick_status & JOYSTICK_STATUS_RELEASED_DOWN)

Definition at line 70 of file controller_evk1105.c.

Referenced by controller_key_released().

 
#define IS_JOYSTICK_RELEASED_KEY_LEFT (  )     (joystick_status & JOYSTICK_STATUS_RELEASED_LEFT)

Definition at line 72 of file controller_evk1105.c.

Referenced by controller_key_released().

 
#define IS_JOYSTICK_RELEASED_KEY_PRESSED (  )     (joystick_status & JOYSTICK_STATUS_RELEASED_PRESSED)

Definition at line 73 of file controller_evk1105.c.

Referenced by controller_key_released().

 
#define IS_JOYSTICK_RELEASED_KEY_RIGHT (  )     (joystick_status & JOYSTICK_STATUS_RELEASED_RIGHT)

Definition at line 71 of file controller_evk1105.c.

Referenced by controller_key_released().

 
#define IS_JOYSTICK_RELEASED_KEY_UP (  )     (joystick_status & JOYSTICK_STATUS_RELEASED_UP)

Definition at line 69 of file controller_evk1105.c.

Referenced by controller_key_released().

#define JOYSTICK_KEY_DEBOUNCE_MS   200


Enumeration Type Documentation

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 

Definition at line 107 of file controller_evk1105.c.

00108 {
00109   JOYSTICK_STATUS_IDLE              = 0x00000000,
00110   JOYSTICK_STATUS_UP                = 0x00000001,
00111   JOYSTICK_STATUS_DOWN              = 0x00000002,
00112   JOYSTICK_STATUS_RIGHT             = 0x00000004,
00113   JOYSTICK_STATUS_LEFT              = 0x00000008,
00114   JOYSTICK_STATUS_PRESSED           = 0x00000010,
00115   JOYSTICK_STATUS_PRESSED_MASK      = 0x0000FFFF,
00116   JOYSTICK_STATUS_RELEASED_UP       = 0x00010000,
00117   JOYSTICK_STATUS_RELEASED_DOWN     = 0x00020000,
00118   JOYSTICK_STATUS_RELEASED_RIGHT    = 0x00040000,
00119   JOYSTICK_STATUS_RELEASED_LEFT     = 0x00080000,
00120   JOYSTICK_STATUS_RELEASED_PRESSED  = 0x00100000,
00121   JOYSTICK_STATUS_RELEASED_MASK     = 0xFFFF0000
00122 } joystick_status = JOYSTICK_STATUS_IDLE;


Function Documentation

void controller_init ( int  cpu_hz,
int  hsb_hz,
int  pba_hz,
int  pbb_hz 
)

Definition at line 274 of file controller_evk1105.c.

References JOYSTICK_KEY_DEBOUNCE_MS, joystick_key_sensibility_timer, static_fcpu_hz, and touch_button_isr().

Referenced by main().

00275 {
00276   Disable_global_interrupt();
00277   INTC_register_interrupt(&touch_button_isr, AVR32_GPIO_IRQ_6, 0);//AVR32_INTC_INT0);
00278   // Other buttons on PB[24..26] -> GPIO_IRQ_7 (PB23 - PB31)
00279   INTC_register_interrupt(&touch_button_isr, AVR32_GPIO_IRQ_7, 0);
00280   gpio_enable_pin_interrupt(QT1081_TOUCH_SENSOR_UP, GPIO_PIN_CHANGE);
00281   gpio_enable_pin_interrupt(QT1081_TOUCH_SENSOR_DOWN, GPIO_PIN_CHANGE);
00282   gpio_enable_pin_interrupt(QT1081_TOUCH_SENSOR_RIGHT, GPIO_PIN_CHANGE);
00283   gpio_enable_pin_interrupt(QT1081_TOUCH_SENSOR_LEFT, GPIO_PIN_CHANGE);
00284   gpio_enable_pin_interrupt(QT1081_TOUCH_SENSOR_ENTER, GPIO_PIN_CHANGE);
00285   // Enable interrupts globally.
00286   Enable_global_interrupt();
00287   static_fcpu_hz = cpu_hz;
00288   cpu_set_timeout(cpu_ms_2_cy(JOYSTICK_KEY_DEBOUNCE_MS, static_fcpu_hz), &joystick_key_sensibility_timer);
00289 }

Bool controller_key_back ( void   ) 

Definition at line 194 of file controller_evk1105.c.

References FALSE, IS_JOYSTICK_KEY_PRESSED, no_store, static_fcpu_hz, and TRUE.

Referenced by state_machine_task().

00195 {
00196   static bool start = false;
00197   static t_cpu_time tempo;
00198 
00199   if (!IS_JOYSTICK_KEY_PRESSED())
00200   {
00201     gpio_set_gpio_pin(LED0_GPIO);
00202     start = false;
00203     return FALSE;
00204   }
00205 
00206   if (!start)
00207   {
00208     cpu_set_timeout(cpu_ms_2_cy(1000, static_fcpu_hz), &tempo);
00209     start = true;
00210   }
00211 
00212   if (cpu_is_timeout(&tempo))
00213   {
00214     gpio_clr_gpio_pin(LED0_GPIO);
00215     no_store = true;
00216     start = false;
00217     return TRUE; 
00218   }
00219 
00220   gpio_set_gpio_pin(LED0_GPIO);
00221   return FALSE;
00222 }

Bool controller_key_fct1 ( void   ) 

Definition at line 229 of file controller_evk1105.c.

References is_joystick_released_up().

Referenced by state_machine_task().

00230 {
00231   return is_joystick_released_up();
00232 }

Bool controller_key_fct1_pressed ( void   ) 

Definition at line 244 of file controller_evk1105.c.

References FALSE.

00245 {
00246   return FALSE;
00247 }

Bool controller_key_fct2 ( void   ) 

Definition at line 234 of file controller_evk1105.c.

References is_joystick_released_pressed().

Referenced by state_machine_task().

00235 {
00236   return is_joystick_released_pressed();
00237 }

Bool controller_key_fct2_pressed ( void   ) 

Definition at line 249 of file controller_evk1105.c.

References FALSE.

00250 {
00251   return FALSE;
00252 }

Bool controller_key_fct3 ( void   ) 

Definition at line 239 of file controller_evk1105.c.

References is_joystick_released_down().

Referenced by state_machine_task().

00240 {
00241   return is_joystick_released_down();
00242 }

Bool controller_key_fct3_pressed ( void   ) 

Definition at line 254 of file controller_evk1105.c.

References IS_JOYSTICK_KEY_DOWN.

Referenced by state_machine_task().

00255 {
00256   return IS_JOYSTICK_KEY_DOWN();
00257 }

Bool controller_key_pressed ( void   ) 

Definition at line 167 of file controller_evk1105.c.

References FALSE, IS_JOYSTICK_KEY_DOWN, IS_JOYSTICK_KEY_LEFT, IS_JOYSTICK_KEY_PRESSED, IS_JOYSTICK_KEY_RIGHT, IS_JOYSTICK_KEY_UP, and TRUE.

Referenced by controller_wheel_pressed().

00168 {
00169   if (IS_JOYSTICK_KEY_UP() ||
00170       IS_JOYSTICK_KEY_DOWN() ||
00171       IS_JOYSTICK_KEY_RIGHT() ||
00172       IS_JOYSTICK_KEY_LEFT() ||
00173       IS_JOYSTICK_KEY_PRESSED())
00174     return TRUE;
00175   return FALSE;
00176 }

Bool controller_key_released ( void   ) 

Bool controller_key_reset ( void   ) 

Definition at line 224 of file controller_evk1105.c.

References FALSE.

Referenced by state_machine_task().

00225 {
00226   return FALSE;
00227 }

void controller_reset ( void   ) 

Definition at line 269 of file controller_evk1105.c.

Referenced by state_machine_filter(), state_machine_signal(), state_machine_source(), and state_machine_task().

00270 {
00271   // CLEAR_JOYSTICK_KEY_ALL();
00272 }

void controller_task ( void   ) 

Definition at line 291 of file controller_evk1105.c.

Referenced by main().

00292 {
00293 }

Bool controller_wheel_left ( int  wheel_inc  ) 

Definition at line 264 of file controller_evk1105.c.

References is_joystick_left().

Referenced by state_machine_filter(), state_machine_idle(), state_machine_signal(), and state_machine_source().

00265 {
00266   return is_joystick_left();
00267 }

Bool controller_wheel_pressed ( void   ) 

Definition at line 189 of file controller_evk1105.c.

References controller_key_pressed().

00190 {
00191   return controller_key_pressed();
00192 }

Bool controller_wheel_right ( int  wheel_inc  ) 

Definition at line 259 of file controller_evk1105.c.

References is_joystick_right().

Referenced by state_machine_filter(), state_machine_idle(), state_machine_signal(), and state_machine_source().

00260 {
00261   return is_joystick_right();
00262 }

static Bool is_joystick_left ( void   )  [static]

Definition at line 349 of file controller_evk1105.c.

References FALSE, IS_JOYSTICK_KEY_LEFT, JOYSTICK_KEY_DEBOUNCE_MS, joystick_key_sensibility_timer, static_fcpu_hz, and TRUE.

Referenced by controller_wheel_left().

00350 {
00351   if (IS_JOYSTICK_KEY_LEFT() && cpu_is_timeout(&joystick_key_sensibility_timer))
00352   {
00353     cpu_set_timeout(cpu_ms_2_cy(JOYSTICK_KEY_DEBOUNCE_MS, static_fcpu_hz), &joystick_key_sensibility_timer);
00354     return TRUE;
00355   }
00356   return FALSE;
00357 }

static Bool is_joystick_released_down ( void   )  [static]

static Bool is_joystick_released_left ( void   )  [static]

static Bool is_joystick_released_pressed ( void   )  [static]

static Bool is_joystick_released_right ( void   )  [static]

static Bool is_joystick_released_up ( void   )  [static]

static Bool is_joystick_right ( void   )  [static]

Definition at line 339 of file controller_evk1105.c.

References FALSE, IS_JOYSTICK_KEY_RIGHT, JOYSTICK_KEY_DEBOUNCE_MS, joystick_key_sensibility_timer, static_fcpu_hz, and TRUE.

Referenced by controller_wheel_right().

00340 {
00341   if (IS_JOYSTICK_KEY_RIGHT() && cpu_is_timeout(&joystick_key_sensibility_timer))
00342   {
00343     cpu_set_timeout(cpu_ms_2_cy(JOYSTICK_KEY_DEBOUNCE_MS, static_fcpu_hz), &joystick_key_sensibility_timer);
00344     return TRUE;
00345   }
00346   return FALSE;
00347 }

static void manage_button_isr ( int  pin,
enum joystick_status_t  status_pressed,
enum joystick_status_t  status_released 
) [inline, static]

Definition at line 124 of file controller_evk1105.c.

References joystick_status, and no_store.

Referenced by touch_button_isr().

00125 {
00126   if (gpio_get_pin_interrupt_flag(pin))
00127   {
00128     // Clear current pin status
00129     joystick_status &= ~(status_pressed | status_released);
00130     if (gpio_get_pin_value(pin))
00131       joystick_status |= status_pressed;
00132     else if (!no_store)
00133       joystick_status |= status_released;
00134     else
00135       no_store = false;
00136     gpio_clear_pin_interrupt_flag(pin);
00137   }
00138 }

void touch_button_isr ( void   ) 

Definition at line 145 of file controller_evk1105.c.

References IS_JOYSTICK_KEY_DOWN, IS_JOYSTICK_KEY_PRESSED, IS_JOYSTICK_KEY_UP, JOYSTICK_STATUS_DOWN, JOYSTICK_STATUS_LEFT, JOYSTICK_STATUS_PRESSED, JOYSTICK_STATUS_RELEASED_DOWN, JOYSTICK_STATUS_RELEASED_LEFT, JOYSTICK_STATUS_RELEASED_PRESSED, JOYSTICK_STATUS_RELEASED_RIGHT, JOYSTICK_STATUS_RELEASED_UP, JOYSTICK_STATUS_RIGHT, JOYSTICK_STATUS_UP, and manage_button_isr().

Referenced by controller_init().

00146 {
00147   manage_button_isr(QT1081_TOUCH_SENSOR_UP, JOYSTICK_STATUS_UP, JOYSTICK_STATUS_RELEASED_UP);
00148   manage_button_isr(QT1081_TOUCH_SENSOR_DOWN, JOYSTICK_STATUS_DOWN, JOYSTICK_STATUS_RELEASED_DOWN);
00149   manage_button_isr(QT1081_TOUCH_SENSOR_RIGHT, JOYSTICK_STATUS_RIGHT, JOYSTICK_STATUS_RELEASED_RIGHT);
00150   manage_button_isr(QT1081_TOUCH_SENSOR_LEFT, JOYSTICK_STATUS_LEFT, JOYSTICK_STATUS_RELEASED_LEFT);
00151   manage_button_isr(QT1081_TOUCH_SENSOR_ENTER, JOYSTICK_STATUS_PRESSED, JOYSTICK_STATUS_RELEASED_PRESSED);
00152   
00153   if (IS_JOYSTICK_KEY_UP())
00154     gpio_clr_gpio_pin(LED1_GPIO);
00155   else
00156     gpio_set_gpio_pin(LED1_GPIO);
00157   if (IS_JOYSTICK_KEY_PRESSED())
00158     gpio_clr_gpio_pin(LED2_GPIO);
00159   else
00160     gpio_set_gpio_pin(LED2_GPIO);
00161   if (IS_JOYSTICK_KEY_DOWN())
00162     gpio_clr_gpio_pin(LED3_GPIO);
00163   else
00164     gpio_set_gpio_pin(LED3_GPIO);
00165 }


Variable Documentation

t_cpu_time joystick_key_sensibility_timer [static]

Referenced by manage_button_isr().

bool no_store = false [static]

Definition at line 106 of file controller_evk1105.c.

Referenced by controller_key_back(), and manage_button_isr().

U32 static_fcpu_hz [static]


Generated on Fri Feb 19 02:23:18 2010 for AVR32 UC3 - EVK1104 DSPLib Demo Documentation by  doxygen 1.5.5