keyboard_task.h File Reference

#include "config.h"

Include dependency graph for keyboard_task.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define Is_usb_report_ready()   (report_ready)
#define Usb_set_report_not_ready()   (report_ready = 0)
#define Usb_set_report_ready()   (report_ready = 1)

Functions

void sof_action (void)
void kbd_test_hit (void)


Detailed Description

This file contains the function declarations - Compiler: IAR EWAVR and GNU GCC for AVR

Definition in file keyboard_task.h.


Define Documentation

 
#define Is_usb_report_ready (  )     (report_ready)

Definition at line 54 of file keyboard_task.h.

 
#define Usb_set_report_not_ready (  )     (report_ready = 0)

Definition at line 55 of file keyboard_task.h.

 
#define Usb_set_report_ready (  )     (report_ready = 1)

Definition at line 56 of file keyboard_task.h.


Function Documentation

void kbd_test_hit ( void   ) 

Chech keyboard key hit This function scans the keyboard keys and update the scan_key word. if a key is pressed, the key_hit bit is set to TRUE.

Definition at line 182 of file keyboard_task.c.

References FALSE, Is_btn_middle, Is_joy_down, Is_joy_left, Is_joy_right, Is_joy_up, key_hit, SIZEOF_USB_KEYS, transmit_no_key, TRUE, usb_data_to_send, usb_kbd_state, usb_key, usb_key_pointer, usb_keydown, usb_keyleft, usb_keyright, usb_keys, and usb_keyup.

00183 {
00184    switch (usb_kbd_state)
00185    {
00186       case 0:
00187       if (Is_btn_middle())
00188       {
00189          usb_kbd_state = 1;
00190          usb_key_pointer = usb_keys;
00191          usb_data_to_send = SIZEOF_USB_KEYS;
00192       }
00193       else if (Is_joy_up())
00194       {
00195          usb_kbd_state = 1;
00196          usb_key_pointer = usb_keyup;
00197          usb_data_to_send = (Uint16)sizeof(usb_keyup);
00198       }    
00199       else if (Is_joy_down())
00200       {
00201          usb_kbd_state = 1;
00202          usb_key_pointer = usb_keydown;
00203         usb_data_to_send = (Uint16)sizeof(usb_keydown);
00204       }   
00205       else if (Is_joy_right())
00206       {
00207          usb_kbd_state = 1;
00208          usb_key_pointer = usb_keyright;
00209         usb_data_to_send = (Uint16)sizeof(usb_keyright);
00210       } 
00211       else if (Is_joy_left())
00212       {
00213          usb_kbd_state = 1;
00214          usb_key_pointer = usb_keyleft;
00215         usb_data_to_send = (Uint16)sizeof(usb_keyleft);
00216       }       
00217       
00218       break;
00219 
00220       case 1:
00221       if (usb_data_to_send != 0)
00222       {
00223          if ((key_hit == FALSE) && (transmit_no_key == FALSE))
00224          {
00225 #ifndef __GNUC__
00226             usb_key = *usb_key_pointer++;
00227 #else
00228             usb_key = pgm_read_byte_near(usb_key_pointer++);
00229 #endif
00230             usb_data_to_send --;
00231             key_hit = TRUE;
00232          }
00233       }
00234       else
00235       {
00236          usb_kbd_state = 0;
00237       }
00238       break;
00239    }
00240 }


Generated on Fri Sep 11 14:37:15 2009 for ATMEL by  doxygen 1.5.3