From: simimeie Date: Sat, 10 Jul 2010 07:36:28 +0000 (+0000) Subject: - change bit definitions to avoid problems for users of broken avr-libc X-Git-Url: http://git.rrze.uni-erlangen.de/gitweb/?p=moodlight.git;a=commitdiff_plain;h=c7c49995443544bf5eaf10ec2890923bad939a6f - change bit definitions to avoid problems for users of broken avr-libc versions: just _BV(n) instead of _BV(PXn). - link to nice NEC protocol description webpage. --- diff --git a/ircontrol.c b/ircontrol.c index 4a8e46f..16ff7b0 100644 --- a/ircontrol.c +++ b/ircontrol.c @@ -1,4 +1,4 @@ -/* $Id: ircontrol.c,v 1.5 2010/06/30 19:38:28 simimeie Exp $ +/* $Id: ircontrol.c,v 1.6 2010/07/10 07:36:28 simimeie Exp $ * Functions for the infrared receiver * * The infrared receiver is connected to PB0 / PCINT0. @@ -22,7 +22,9 @@ * that equals around 7100 cpu cycles at 8 MHz. */ #define RC5HALFLENINCYCLES ((CPUFREQ * 889UL) / 1000000UL) -/* For NEC, we start with a 9000 us pulse, then 4500 us silence. +/* Source for most of this was the following nice page with illustrations + * and all that: http://www.sbprojects.com/knowledge/ir/nec.htm + * For NEC, we start with a 9000 us pulse, then 4500 us silence. * Then the bits follow: * a 1 is a 560 us pulse followed by 1690 us of silence (=2250 us total). * a 0 is a 560 us pulse followed by 560 us of silence (=1120 us total). @@ -69,7 +71,7 @@ ISR(PCINT0_vect) { uint32_t ts1diff; /* distance from last 1 */ uint32_t ts0diff; /* distance from last 0 */ - v = PINB & _BV(PB0); + v = PINB & _BV(0); if (v == lastpin) { /* No change visible - spurious interrupt */ return; } @@ -184,7 +186,7 @@ ISR(PCINT0_vect) { void ircontrol_init(void) { /* Activate pullup */ - PORTB |= _BV(PB0); + PORTB |= _BV(0); /* enable PCINT0 */ PCICR |= _BV(PCIE0); /* Enable pin change interrupt 0 (=PB0) in pcint0 */