-/* $Id: ircontrol.c,v 1.2 2010/06/27 22:20:39 simimeie Exp $
+/* $Id: ircontrol.c,v 1.4 2010/06/27 23:05:55 simimeie Exp $
* Functions for the infrared receiver
*
* The infrared receiver is connected to PB0 / PCINT0.
/* For NEC, we start with a 9000 us pulse, then 4500 us silence.
* Then the bits follow:
- * a 0 is a 560 us pulse followed by 1690 us of silence.
- * a 1 is a 560 us pulse followed by 560 us of silence.
+ * a 1 is a 560 us pulse followed by 1690 us of silence.
+ * a 0 is a 560 us pulse followed by 560 us of silence.
* These values equal the following cpu cycle counts:
* 9000 us = 72000 cc, 4500 us = 36000 cc, 560 us = 4480, 1690 us = 13520 cc
*/
#define NECSTARTLEN1 ((CPUFREQ * 9UL) / 1000UL)
#define NECSTARTLEN2 ((CPUFREQ * 45UL) / 10000UL)
#define NECPULSELEN ((CPUFREQ * 56UL) / 100000UL)
-#define NECONELEN ((CPUFREQ * 112UL) / 100000UL)
-#define NECZEROLEN ((CPUFREQ * 225UL) / 100000UL)
+#define NECZEROLEN ((CPUFREQ * 112UL) / 100000UL)
+#define NECONELEN ((CPUFREQ * 225UL) / 100000UL)
+#define NECREPEATLEN ((CPUFREQ * 225UL) / 100000UL)
/* the NEC code contains 4 bytes, sent with LSB first:
* 0+1 are either the "extended address" or "address and inverted address".
curcodebit = 0;
codebytes[0] = codebytes[1] = codebytes[2] = codebytes[3] = 0;
}
+ } else if ((ts0diff >= (( 8 * NECREPEATLEN) / 10))
+ && (ts0diff <= ((12 * NECREPEATLEN) / 10))) {
+ if (curcodebit == 0xfe) {
+ console_printpgm_P(PSTR(".REP."));
+ }
}
last1irqts = curirqts;
}