| 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 | } |