Subversion Repositories Projects

Rev

Blame | Last modification | View Log | RSS feed


/************************************************************************/
/*                                                                      */
/*                      Debouncing 8 Keys                               */
/*                      Sampling 4 Times                                */
/*                      With Repeat Function                            */
/*                                                                      */
/*              Author: Peter Dannegger                                 */
/*                      danni@specs.de                                  */
/*                                                                      */
/*     erg√§nzt: gebad, beschschleunigende Tastenwiederholung            */
/*                                                                      */
/************************************************************************/

#ifndef KEYS_H_
#define KEYS_H_

#define REPEAT_START    50                                              // after 500ms
#define REPEAT_NEXT     20                                              // every 200ms
#define REPEAT_ACC_N    6                                               // wenn V_REPEAT, nach dem angegebenen Zeichen beschleunigen

volatile uint8_t key_state;                                             // debounced and inverted key state:
                                                                                                // bit = 1: key pressed
volatile uint8_t key_press;                                             // key press detect
volatile uint8_t key_rpt;                                               // key long press and repeat
volatile uint8_t key_repeat_next;
volatile uint8_t key_counter;

volatile uint8_t task_timer0_1;
volatile uint8_t task_timer0_2;
volatile uint8_t task_timer0_3;
volatile uint8_t task_timer0_4;
volatile uint8_t task_timer0_5;

uint8_t Get_Key_Press( uint8_t key_mask );
uint8_t Get_Key_Rpt( uint8_t key_mask );
uint8_t Get_Key_Short( uint8_t key_mask );
uint8_t Get_Key_Long( uint8_t key_mask );
void Key_Speedup_rpt( uint8_t speedup );

volatile uint16_t light_count;                                  // muss bei jeden Tastendruck auf 0 gesetzt werdwn

#endif /* KEYS_H_ */