From c7c49995443544bf5eaf10ec2890923bad939a6f Mon Sep 17 00:00:00 2001 From: simimeie Date: Sat, 10 Jul 2010 07:36:28 +0000 Subject: [PATCH] - 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. --- ircontrol.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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 */ -- 2.25.1