encoder.c


1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
 
4
#define XTAL        4e6                 
5
#define LEDS_DDR    DDRB
6
#define LEDS        PORTB               
7
 
8
void encode_init( void )            
9
{
10
  TCCR0 = (1<<WGM01) | (1<<CS01) | (1<<CS00);     // CTC, XTAL / 64
11
  OCR0 = (uint8_t)(XTAL / 64.0 * 1e-3 - 0.5);       // 1ms
12
  TIMSK |= 1<<OCIE0;
13
  
14
  
15
}
16
17
ISR( TIMER0_COMP_vect )             
18
{
19
    
20
  LEDS = 0x00;
21
  
22
}
23
 
24
int main( void )
25
{
26
  LEDS_DDR = 0xFF;
27
  LEDS=0xFF;
28
29
  encode_init();
30
  sei();
31
32
 
33
  while(1);
34
    
35
36
  
37
}