From 586dc529cebb8b3a7e3e6ce18bca15d6a5df2160 Mon Sep 17 00:00:00 2001 From: ukw Date: Tue, 15 Jun 2010 11:55:50 +0000 Subject: [PATCH] Version 1.6.5: handle uint8_t overflow above 15395 Hz git-svn-id: svn://mikrocontroller.net/irmp@29 aeb2e35e-bfc4-4214-b83c-9e8de998ed28 --- IR-Data/rc-car-20kHz.txt | 36 ++++++++++++++++++++++++++++++++++++ IR-Data/rc-car.txt | 36 ++++++++++++++++++++++++++++++++++++ irmp.c | 8 ++++---- irmpconfig.h | 4 ++-- 4 files changed, 78 insertions(+), 6 deletions(-) create mode 100644 IR-Data/rc-car-20kHz.txt create mode 100644 IR-Data/rc-car.txt diff --git a/IR-Data/rc-car-20kHz.txt b/IR-Data/rc-car-20kHz.txt new file mode 100644 index 0000000..d627186 --- /dev/null +++ b/IR-Data/rc-car-20kHz.txt @@ -0,0 +1,36 @@ +# Scan einer IR Fernbedienung für Modellfahrzeuge. +# +# Eine Fernbedienung kann eine Senderadresse von 0 bis 3 haben, +# daher 4 Fahrzeuge. +# Es können 3 AD Werte und 8 Schalterstellungen gesendet werden. +# Die oberen zwei bits scheinen festzulegen, was gesendet wird. +# Davon ausgehend das ein langer Puls, 900µS, 1 entspricht, +# 00, 10, 01, hier werden die AD Werte gesendet +# 11, dann werden die Schalterstellungen gesendet. +# Die nächsten zwei bits sind dann die vier möglichen Adressen. +# Hier folgen Scans der Schalterstellungen. +# Grundstellung ID 0: +0000000000000000000000000000000000000000111111111111111111111111111111111111111000000000001111111111111111110000000000011111111111111111110000000000011111111111111111100000000000111111111111111111100000000001111111111111111111000000000001111111111111111111000000000011111111111111111110000000000011111111111111111110000000000111111111000000000001111111110000000000011111111100000000000111111111000000000011111111100000000000111111111111111111 +#Grundstellung ID 1: +0000000000000000000000000000000000000000011111111111111111111111111111111111110000000000000111111111111111110000000000001111111111111111100000000000011111111000000000000111111111111111110000000000000111111111111111110000000000001111111111111111110000000000011111111111111111100000000000001111111111111111000000000000011111110000000000001111111100000000000011111110000000000000111111100000000000011111111111111111000000000000011111111111111111 +#Grundstellung ID 2: +0000000000000000000000000000000000000000111111111111111111111111111111111111111000000000011111111111111111110000000000111111111111111111110000000000111111111111111111110000000000111111111000000000011111111111111111110000000000111111111111111111110000000000111111111111111111100000000001111111111111111111100000000001111111110000000000111111111100000000001111111110000000000011111111110000000000111111111111111111100000000001111111111111111111 +#Grundstellung ID 3: +000000000000000000000000000000000000000001111111111111111111111111111111111111110000000000111111111111111111100000000000111111111111111111000000000001111111110000000000111111111100000000001111111111111111111000000000001111111111111111111100000000001111111111111111111000000000011111111111111111110000000000111111111000000000001111111110000000000011111111100000000001111111111000000000011111111110000000000111111111111111111111 +Ab hier alles nur ID 3: +# Funktion 1: +000000000000000000000000000000000000000000111111111111111111111111111111111111110000000000011111111111111111000000000000011111111111111111000000000000111111110000000000000111111000000000000001111110000000000001111111111111111110000000000001111111111111111100000000000001111111111111111100000000000011111111000000000000111111100000000000011111111000000000000111111100000000000011111111111111111000000000000011111111111111111111 +# Funktion 2: +0000000000000000000000000000000000000001111111111111111111111111111111111111111000000000011111111111111111110000000000111111111111111111110000000001111111111100000000011111111110000000000111111111111111111100000000001111111111000000000011111111111111111111000000000111111111111111111110000000000111111111100000000001111111111000000000111111111100000000001111111111000000000011111111111111111110000000000111111111111111 +# Funktion 3: +000000000000000000000000000000000000000001111111111111111111111111111111111111100000000000111111111111111111000000000001111111111111111111000000000001111111110000000000000111111000000000000111111111111111111000000000000111111111111111110000000000001111111000000000000011111111111111111000000000000111111110000000000001111111000000000000111111110000000000001111111100000000000011111111111111111000000000000011111111111111111111 +# Funktion 4: +000000000000000000000000000000000000000001111111111111111111111111111111111111100000000000001111111111111111000000000000111111111111111111000000000000111111110000000000011111111000000000000111111111111111111000000000001111111111111111111000000000001111111111111111110000000000011111111100000000000111111110000000000001111111100000000000011111110000000000001111111100000000000011111111111111111100000000000111111111111111111111 +# Funktion 5: +0000000000000000000000000000000000000000011111111111111111111111111111111111111000000000001111111111111111111000000000001111111111111111110000000000001111111100000000000011111111000000000001111111111111111110000000000001111111111111111110000000000011111111111111111100000000000011111111111111111000000000000111111110000000000011111111100000000000111111110000000000001111111111111111110000000000011111111111111111110000000000111111111111111111 +# Funktion 6: +0000000000000000000000000000000000000000011111111111111111111111111111111111111000000000000011111111111111110000000000000111111111111111110000000000000011111100000000000001111100000000000000111111111111111110000000000011111111111111111000000000000001111111111111111100000000000111111111111111111000000000000011111110000000000001111111000000000000011111111111111110000000000000111111110000000000000111111111111111100000000000011111111111111111 +# Funktion 7: +0000000000000000000000000000000000000000001111111111111111111111111111111111111000000000000111111111111111111000000000000111111111111111110000000000001111111000000000000011111110000000000001111111111111111110000000000001111111111111111100000000000001111111111111111000000000000011111111111111111000000000000011111111111111111000000000001111111100000000000011111111000000000000111111100000000000011111111111111111100000000000111111111111111111 +# Funktion 8: +0000000000000000000000000000000000000000011111111111111111111111111111111111111000000000001111111111111111110000000000001111111111111111110000000000001111111100000000000111111111000000000001111111111111111110000000000011111111111111111110000000000011111111111111111100000000000111111111111111111000000000000111111110000000000011111111111111111110000000000011111111000000000000111111110000000000011111111111111111100000000000111111111111111111 diff --git a/IR-Data/rc-car.txt b/IR-Data/rc-car.txt new file mode 100644 index 0000000..c4549bd --- /dev/null +++ b/IR-Data/rc-car.txt @@ -0,0 +1,36 @@ +# Scan einer IR Fernbedienung für Modellfahrzeuge. +# +# Eine Fernbedienung kann eine Senderadresse von 0 bis 3 haben, +# daher 4 Fahrzeuge. +# Es können 3 AD Werte und 8 Schalterstellungen gesendet werden. +# Die oberen zwei bits scheinen festzulegen, was gesendet wird. +# Davon ausgehend das ein langer Puls, 900µS, 1 entspricht, +# 00, 10, 01, hier werden die AD Werte gesendet +# 11, dann werden die Schalterstellungen gesendet. +# Die nächsten zwei bits sind dann die vier möglichen Adressen. +# Hier folgen Scans der Schalterstellungen. +# Grundstellung ID 0: +0000000000000000000011111111111111111111000000111111111000000111111111100000011111111100000011111111110000011111111110000001111111111000001111111111000000111111111100000111110000001111100000011111000000111110000011111000000111111111 +#Grundstellung ID 1: +00000000000000000000011111111111111111110000000111111111000000111111111000000111100000011111111100000001111111110000001111111110000001111111110000000111111110000000111100000011110000001111000000011110000001111111110000000111111111 +#Grundstellung ID 2: +0000000000000000000011111111111111111111000001111111111000001111111111000001111111111000001111100000111111111100000111111111100000111111111100000111111111100000111110000011111000001111100000011111000001111111111000001111111111 +#Grundstellung ID 3: +00000000000000000000011111111111111111111000001111111111000000111111111000000111110000011111000001111111111000000111111111100000111111111100000111111111100000111110000001111100000011111000001111100000111110000011111111111 +Ab hier alles nur ID 3: +# Funktion 1: +000000000000000000000111111111111111111100000011111111100000001111111110000001111000000011100000001110000001111111110000001111111110000000111111111000000111100000011110000001111000000111100000011111111100000001111111111 +# Funktion 2: +0000000000000000000011111111111111111111000001111111111000001111111111000001111110000011111000001111111111000001111100000111111111100000111111111100000111110000011111000001111100000111110000011111111110000011111111 +# Funktion 3: +0000000000000000000001111111111111111111000000111111111000000111111111100000011111000000011100000011111111100000011111111100000011110000000111111111000000111100000011110000001111000000111100000011111111100000001111111111 +# Funktion 4: +000000000000000000000111111111111111111100000001111111100000011111111100000011110000001111000000111111111000000111111111100000011111111100000011111000000111100000011110000001111000000111100000011111111100000011111111111 +# Funktion 5: +00000000000000000000011111111111111111110000001111111111000000111111111000000111100000011110000001111111110000001111111110000001111111110000001111111110000001111000000111110000001111000000111111111000000111111111100000111111111 +# Funktion 6: +00000000000000000000011111111111111111110000000111111110000000111111111000000011100000001110000000111111111000000111111111000000011111111100000011111111100000001111000000111100000001111111100000001111000000011111111000000111111111 +# Funktion 7: +000000000000000000000111111111111111111100000011111111100000011111111100000011110000000111100000011111111100000011111111100000001111111100000001111111110000000111111111000000111100000011110000001111000000111111111000000111111111 +# Funktion 8: +000000000000000000000111111111111111111100000011111111100000011111111100000011110000001111100000011111111100000011111111110000001111111110000001111111110000001111000000111111111100000011110000001111000000111111111000000111111111 diff --git a/irmp.c b/irmp.c index b691d71..8418b28 100644 --- a/irmp.c +++ b/irmp.c @@ -3,7 +3,7 @@ * * Copyright (c) 2009-2010 Frank Meyer - frank(at)fli4l.de * - * $Id: irmp.c,v 1.50 2010/06/14 22:00:51 fm Exp $ + * $Id: irmp.c,v 1.51 2010/06/15 12:01:20 fm Exp $ * * ATMEGA88 @ 8 MHz * @@ -328,10 +328,10 @@ typedef unsigned int16 uint16_t; #define IRMP_SUPPORT_MANCHESTER 0 #endif -#define IRMP_TIMEOUT_TIME 16000.0e-6 // timeout after 16 ms darkness -#define IRMP_TIMEOUT_TIME_MS 16L // timeout after 16 ms darkness +#define IRMP_TIMEOUT_TIME 16500.0e-6 // timeout after 16.5 ms darkness +#define IRMP_TIMEOUT_TIME_MS 16500L // timeout after 16.5 ms darkness -#if (F_INTERRUPTS * IRMP_TIMEOUT_TIME_MS) / 1000 >= 255 +#if (F_INTERRUPTS * IRMP_TIMEOUT_TIME_MS) / 1000000 >= 254 #define IRMP_TIMEOUT_LEN (uint16_t)(F_INTERRUPTS * IRMP_TIMEOUT_TIME + 0.5) typedef uint16_t PAUSE_LEN; #else diff --git a/irmpconfig.h b/irmpconfig.h index b522ff3..e72c76f 100644 --- a/irmpconfig.h +++ b/irmpconfig.h @@ -3,7 +3,7 @@ * * Copyright (c) 2010 Frank Meyer - frank(at)fli4l.de * - * $Id: irmpconfig.h,v 1.21 2010/06/14 22:01:49 fm Exp $ + * $Id: irmpconfig.h,v 1.22 2010/06/15 12:02:52 fm Exp $ * * ATMEGA88 @ 8 MHz * @@ -46,7 +46,7 @@ #define IRMP_SUPPORT_BANG_OLUFSEN_PROTOCOL 1 // flag: support Bang & Olufsen uses ~200 bytes #define IRMP_SUPPORT_GRUNDIG_PROTOCOL 1 // flag: support Grundig uses ~150 bytes #define IRMP_SUPPORT_NOKIA_PROTOCOL 1 // flag: support Nokia uses ~150 bytes -#define IRMP_SUPPORT_FDC_PROTOCOL 0 // flag: support FDC3402 keyboard uses ~100 bytes +#define IRMP_SUPPORT_FDC_PROTOCOL 0 // flag: support FDC3402 keyboard uses ~50 bytes #define IRMP_SUPPORT_RCCAR_PROTOCOL 0 // flag: support RC car uses ~150 bytes /*--------------------------------------------------------------------------------------------------------------------------------------------------- -- 2.39.2