main.c


1
/*
2
Name:  Test "key-routines.h"
3
µC:    ATmega328P
4
Date:  Nov 2017
5
*/
6
7
#define F_CPU 16000000
8
9
#include <avr/io.h>
10
#include "key-routines.h"
11
12
int main(void)
13
{
14
  KEY_DDR &= ~ALL_KEYS;         // configure key port for input
15
  KEY_PORT |= ALL_KEYS;                // and turn on pull up resistors
16
17
  TCCR0B = (1<<CS02)|(1<<CS00);         // prescaler 1024
18
  TCNT0 = (uint8_t)(int16_t)-(F_CPU / 1024 * 10e-3 + 0.5);  // preload for 10ms
19
  TIMSK0 |= 1<<TOIE0;                   // enable timer interrupt
20
21
  sei();
22
23
  while(1){
24
    if( get_key_short( 1<<KEY1 )) {
25
      //Do something
26
    }
27
     
28
    if( get_key_long( 1<<KEY1 )) {
29
      //Do something
30
    }
31
  
32
    if( get_key_press( 1<<KEY2 ) || get_key_rpt( 1<<KEY2 )) {
33
      //Do something
34
    }
35
  }
36
}