summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorukw2015-12-29 07:31:22 +0000
committerukw2015-12-29 07:31:22 +0000
commit173b00a6f5d5c604471f9755d80c9181da15133c (patch)
tree47afc72154187fdb337718d2fc38244f80011e40
parent113fbb47092b498f56d79aaaf4ac1476a3ff1c23 (diff)
downloadirmp-173b00a6f5d5c604471f9755d80c9181da15133c.zip
Version 2.9.7b: reduced the number of autorepeated frames to 0 for KASEIKYO and SAMSUNG32
git-svn-id: svn://mikrocontroller.net/irmp@173 aeb2e35e-bfc4-4214-b83c-9e8de998ed28
-rw-r--r--IR-Data/test-suite.sh5
-rw-r--r--README.txt4
-rw-r--r--irmp.c6
-rw-r--r--irmpprotocols.h6
-rw-r--r--irsnd.c23
5 files changed, 32 insertions, 12 deletions
diff --git a/IR-Data/test-suite.sh b/IR-Data/test-suite.sh
index b0ffbb2..df2b3ae 100644
--- a/IR-Data/test-suite.sh
+++ b/IR-Data/test-suite.sh
@@ -99,9 +99,14 @@ for j in \
kathrein-15kHz.txt \
lg-air-15kHz.txt \
merlin-15kHz.txt \
+ panasonic-vcr-15kHz.txt \
pentax-15kHz.txt \
+ rc5-philipps-15kHz.txt \
+ rc6a-siemens-15kHz.txt \
recs80-15kHz.txt \
saa3004-15kHz.txt \
+ samsung-br-15kHz.txt \
+ samsung32-tv-15kHz.txt \
samsung32-15kHz.txt \
samsung48-15kHz.txt \
sharp_15khz.txt \
diff --git a/README.txt b/README.txt
index 1ff2a20..faa1f6d 100644
--- a/README.txt
+++ b/README.txt
@@ -1,8 +1,8 @@
IRMP - Infrared Multi Protocol Decoder
--------------------------------------
-Version IRMP: 2.9.7a 2015-11-18
-Version IRSND: 2.9.7a 2015-11-18
+Version IRMP: 2.9.7b 2015-11-30
+Version IRSND: 2.9.7b 2015-11-30
Dokumentation:
diff --git a/irmp.c b/irmp.c
index e473438..8cbeb49 100644
--- a/irmp.c
+++ b/irmp.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2009-2015 Frank Meyer - frank(at)fli4l.de
*
- * $Id: irmp.c,v 1.182 2015/11/18 08:27:50 fm Exp $
+ * $Id: irmp.c,v 1.183 2015/12/03 18:13:45 fm Exp $
*
* Supported AVR mikrocontrollers:
*
@@ -4558,7 +4558,7 @@ irmp_ISR (void)
else
#endif
-#if IRMP_SUPPORT_KASEIKYO_PROTOCOL == 1
+#if 0 && IRMP_SUPPORT_KASEIKYO_PROTOCOL == 1 // fm 2015-12-02: don't ignore every 2nd frame
// if KASEIKYO protocol and the code will be repeated within 50 ms, we will ignore 2nd repetition frame
if (irmp_param.protocol == IRMP_KASEIKYO_PROTOCOL && repetition_frame_number == 1)
{
@@ -4571,7 +4571,7 @@ irmp_ISR (void)
else
#endif
-#if IRMP_SUPPORT_SAMSUNG_PROTOCOL == 1
+#if 0 && IRMP_SUPPORT_SAMSUNG_PROTOCOL == 1 // fm 2015-12-02: don't ignore every 2nd frame
// if SAMSUNG32 or SAMSUNG48 protocol and the code will be repeated within 50 ms, we will ignore every 2nd frame
if ((irmp_param.protocol == IRMP_SAMSUNG32_PROTOCOL || irmp_param.protocol == IRMP_SAMSUNG48_PROTOCOL) && (repetition_frame_number & 0x01))
{
diff --git a/irmpprotocols.h b/irmpprotocols.h
index 3b3ebfe..0e6a020 100644
--- a/irmpprotocols.h
+++ b/irmpprotocols.h
@@ -5,7 +5,7 @@
*
* Copyright (c) 2013-2015 Frank Meyer - frank(at)fli4l.de
*
- * $Id: irmpprotocols.h,v 1.43 2015/11/18 08:27:50 fm Exp $
+ * $Id: irmpprotocols.h,v 1.44 2015/11/30 09:31:54 fm Exp $
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -194,7 +194,7 @@ typedef uint8_t PAUSE_LEN;
#define SAMSUNG32_COMMAND_OFFSET 16 // skip 16 bits
#define SAMSUNG32_COMMAND_LEN 16 // read 16 command bits
#define SAMSUNG32_COMPLETE_DATA_LEN 32 // complete length
-#define SAMSUNG32_FRAMES 2 // SAMSUNG32 sends each frame 2 times // fm: correct?
+#define SAMSUNG32_FRAMES 1 // SAMSUNG32 sends one frame
#define SAMSUNG32_AUTO_REPETITION_PAUSE_TIME 47.0e-3 // repetition after 47 ms
#define SAMSUNG32_FRAME_REPEAT_PAUSE_TIME 47.0e-3 // frame repeat after 47ms
@@ -250,7 +250,7 @@ typedef uint8_t PAUSE_LEN;
#define KASEIKYO_COMPLETE_DATA_LEN 48 // complete length
#define KASEIKYO_STOP_BIT 1 // has stop bit
#define KASEIKYO_LSB 1 // LSB...MSB?
-#define KASEIKYO_FRAMES 2 // KASEIKYO sends 1st frame 2 times
+#define KASEIKYO_FRAMES 1 // KASEIKYO sends 1 frame
#define KASEIKYO_FLAGS 0 // flags
/*---------------------------------------------------------------------------------------------------------------------------------------------------
diff --git a/irsnd.c b/irsnd.c
index 7fe2633..8e1fd51 100644
--- a/irsnd.c
+++ b/irsnd.c
@@ -8,12 +8,13 @@
* ATtiny87, ATtiny167
* ATtiny45, ATtiny85
* ATtiny44 ATtiny84
+ * ATtiny2313 ATtiny4313
* ATmega8, ATmega16, ATmega32
* ATmega162
* ATmega164, ATmega324, ATmega644, ATmega644P, ATmega1284, ATmega1284P
* ATmega88, ATmega88P, ATmega168, ATmega168P, ATmega328P
*
- * $Id: irsnd.c,v 1.97 2015/11/18 08:27:50 fm Exp $
+ * $Id: irsnd.c,v 1.99 2015/12/16 14:12:17 fm Exp $
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -55,6 +56,17 @@
# error Wrong value for IRSND_OCx, choose IRSND_OC0A or IRSND_OC0B in irsndconfig.h
# endif // IRSND_OCx
+#elif defined (__AVR_ATtiny2313__) || defined (__AVR_ATtiny4313__) // ATtiny2313/4313 uses OC0A = PB2 or OC0B = PD5
+# if IRSND_OCx == IRSND_OC0A // OC0A
+# define IRSND_PORT_LETTER B
+# define IRSND_BIT_NUMBER 2
+# elif IRSND_OCx == IRSND_OC0B // OC0B
+# define IRSND_PORT_LETTER D
+# define IRSND_BIT_NUMBER 5
+# else
+# error Wrong value for IRSND_OCx, choose IRSND_OC0A or IRSND_OC0B in irsndconfig.h
+# endif // IRSND_OCx
+
#elif defined (__AVR_ATtiny87__) || defined (__AVR_ATtiny167__) // ATtiny87/167 uses OC0A = PA2
# if IRSND_OCx == IRSND_OC0A // OC0A
# define IRSND_PORT_LETTER A
@@ -64,18 +76,21 @@
# endif // IRSND_OCx
#elif defined (__AVR_ATmega8__) // ATmega8 uses only OC2 = PB3
-# if IRSND_OCx == IRSND_OC2 // OC0A
+# if IRSND_OCx == IRSND_OC2 // OC2
# define IRSND_PORT_LETTER B
# define IRSND_BIT_NUMBER 3
# else
# error Wrong value for IRSND_OCx, choose IRSND_OC2 in irsndconfig.h
# endif // IRSND_OCx
-#elif defined (__AVR_ATmega16__) || defined (__AVR_ATmega32__) // ATmega16|32 uses OC2 = PD7
+#elif defined (__AVR_ATmega16__) || defined (__AVR_ATmega32__) // ATmega16|32 uses OC0 = PB3 or OC2 = PD7
# if IRSND_OCx == IRSND_OC2 // OC2
# define IRSND_PORT_LETTER D
# define IRSND_BIT_NUMBER 7
+# elif IRSND_OCx == IRSND_OC0 // OC0
+# define IRSND_PORT_LETTER B
+# define IRSND_BIT_NUMBER 3
# else
-# error Wrong value for IRSND_OCx, choose IRSND_OC2 in irsndconfig.h
+# error Wrong value for IRSND_OCx, choose IRSND_OC2 or IRSND_OC0 in irsndconfig.h
# endif // IRSND_OCx
#elif defined (__AVR_ATmega162__) // ATmega162 uses OC2 = PB1 or OC0 = PB0