17aea8ef |
1 | /* $Id: ircontrol.c,v 1.1 2010/06/26 19:08:18 simimeie Exp $ |
2 | * Functions for the infrared receiver |
3 | * |
4 | * The infrared receiver is connected to PB0 / PCINT0. |
5 | */ |
6 | |
7 | #include <avr/io.h> |
8 | #include <avr/interrupt.h> |
9 | #include "ircontrol.h" |
10 | #include "console.h" |
11 | |
12 | ISR(PCINT0_vect) { |
13 | uint8_t v = PINB & _BV(PB0); |
14 | if (v) { |
15 | console_printpgm_P(PSTR("!1!")); |
16 | } else { |
17 | console_printpgm_P(PSTR("!0!")); |
18 | } |
19 | } |
20 | |
21 | void ircontrol_init(void) |
22 | { |
23 | /* Activate pullup */ |
24 | PORTB |= _BV(PB0); |
25 | /* enable PCINT0 */ |
26 | PCICR |= _BV(PCIE0); |
27 | /* Enable pin change interrupt 0 (=PB0) in pcint0 */ |
28 | PCMSK0 |= _BV(PCINT0); |
29 | } |