summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IR-Data/test-suite.sh1
-rw-r--r--README.txt2
-rw-r--r--irmpconfig.h2
-rw-r--r--irsnd.c42
-rw-r--r--irsndconfig.h3
5 files changed, 46 insertions, 4 deletions
diff --git a/IR-Data/test-suite.sh b/IR-Data/test-suite.sh
index 7176020..26d6200 100644
--- a/IR-Data/test-suite.sh
+++ b/IR-Data/test-suite.sh
@@ -99,6 +99,7 @@ for j in \
recs80-15kHz.txt \
saa3004-15kHz.txt \
samsung32-15kHz.txt \
+ samsung48-15kHz.txt \
sharp_15khz.txt \
Siemens-Gigaset-M740AV-15kHz.txt \
thomson-mb100-15kHz.txt \
diff --git a/README.txt b/README.txt
index e0e3684..6ccebf3 100644
--- a/README.txt
+++ b/README.txt
@@ -2,7 +2,7 @@ IRMP - Infrared Multi Protocol Decoder
--------------------------------------
Version IRMP: 2.6.0 09.07.2014
-Version IRSND: 2.5.4 23.06.2014
+Version IRSND: 2.6.0 10.07.2014
Dokumentation:
diff --git a/irmpconfig.h b/irmpconfig.h
index 7e3f6b4..5c78bd4 100644
--- a/irmpconfig.h
+++ b/irmpconfig.h
@@ -5,7 +5,7 @@
*
* Copyright (c) 2009-2013 Frank Meyer - frank(at)fli4l.de
*
- * $Id: irmpconfig.h,v 1.114 2014/07/09 15:26:02 fm Exp $
+ * $Id: irmpconfig.h,v 1.116 2014/07/10 09:49:24 fm Exp $
*
* ATMEGA88 @ 8 MHz
*
diff --git a/irsnd.c b/irsnd.c
index 4b276d6..2ba1e28 100644
--- a/irsnd.c
+++ b/irsnd.c
@@ -13,7 +13,7 @@
* ATmega164, ATmega324, ATmega644, ATmega644P, ATmega1284, ATmega1284P
* ATmega88, ATmega88P, ATmega168, ATmega168P, ATmega328P
*
- * $Id: irsnd.c,v 1.77 2014/07/09 14:45:56 fm Exp $
+ * $Id: irsnd.c,v 1.78 2014/07/10 09:48:23 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
@@ -193,6 +193,9 @@
#define SAMSUNG32_AUTO_REPETITION_PAUSE_LEN (uint16_t)(F_INTERRUPTS * SAMSUNG32_AUTO_REPETITION_PAUSE_TIME + 0.5) // use uint16_t!
#define SAMSUNG32_FRAME_REPEAT_PAUSE_LEN (uint16_t)(F_INTERRUPTS * SAMSUNG32_FRAME_REPEAT_PAUSE_TIME + 0.5) // use uint16_t!
+#define SAMSUNG48_AUTO_REPETITION_PAUSE_LEN (uint16_t)(F_INTERRUPTS * SAMSUNG48_AUTO_REPETITION_PAUSE_TIME + 0.5) // use uint16_t!
+#define SAMSUNG48_FRAME_REPEAT_PAUSE_LEN (uint16_t)(F_INTERRUPTS * SAMSUNG48_FRAME_REPEAT_PAUSE_TIME + 0.5) // use uint16_t!
+
#define MATSUSHITA_START_BIT_PULSE_LEN (uint8_t)(F_INTERRUPTS * MATSUSHITA_START_BIT_PULSE_TIME + 0.5)
#define MATSUSHITA_START_BIT_PAUSE_LEN (uint8_t)(F_INTERRUPTS * MATSUSHITA_START_BIT_PAUSE_TIME + 0.5)
#define MATSUSHITA_PULSE_LEN (uint8_t)(F_INTERRUPTS * MATSUSHITA_PULSE_TIME + 0.5)
@@ -888,6 +891,22 @@ irsnd_send_data (IRMP_DATA * irmp_data_p, uint8_t do_wait)
break;
}
#endif
+#if IRSND_SUPPORT_SAMSUNG48_PROTOCOL == 1
+ case IRMP_SAMSUNG48_PROTOCOL:
+ {
+ address = bitsrevervse (irmp_data_p->address, SAMSUNG_ADDRESS_LEN);
+ command = bitsrevervse (irmp_data_p->command, 16);
+
+ irsnd_buffer[0] = (address & 0xFF00) >> 8; // AAAAAAAA
+ irsnd_buffer[1] = (address & 0x00FF); // AAAAAAAA
+ irsnd_buffer[2] = ((command & 0xFF00) >> 8); // CCCCCCCC
+ irsnd_buffer[3] = ~((command & 0xFF00) >> 8); // cccccccc
+ irsnd_buffer[4] = (command & 0x00FF); // CCCCCCCC
+ irsnd_buffer[5] = ~(command & 0x00FF); // cccccccc
+ irsnd_busy = TRUE;
+ break;
+ }
+#endif
#if IRSND_SUPPORT_MATSUSHITA_PROTOCOL == 1
case IRMP_MATSUSHITA_PROTOCOL:
{
@@ -1496,6 +1515,24 @@ irsnd_ISR (void)
break;
}
#endif
+#if IRSND_SUPPORT_SAMSUNG48_PROTOCOL == 1
+ case IRMP_SAMSUNG48_PROTOCOL:
+ {
+ startbit_pulse_len = SAMSUNG_START_BIT_PULSE_LEN;
+ startbit_pause_len = SAMSUNG_START_BIT_PAUSE_LEN - 1;
+ pulse_1_len = SAMSUNG_PULSE_LEN;
+ pause_1_len = SAMSUNG_1_PAUSE_LEN - 1;
+ pulse_0_len = SAMSUNG_PULSE_LEN;
+ pause_0_len = SAMSUNG_0_PAUSE_LEN - 1;
+ has_stop_bit = SAMSUNG_STOP_BIT;
+ complete_data_len = SAMSUNG48_COMPLETE_DATA_LEN;
+ n_auto_repetitions = SAMSUNG48_FRAMES; // 1 frame
+ auto_repetition_pause_len = SAMSUNG48_AUTO_REPETITION_PAUSE_LEN; // 47 ms pause
+ repeat_frame_pause_len = SAMSUNG48_FRAME_REPEAT_PAUSE_LEN;
+ irsnd_set_freq (IRSND_FREQ_38_KHZ);
+ break;
+ }
+#endif
#if IRSND_SUPPORT_MATSUSHITA_PROTOCOL == 1
case IRMP_MATSUSHITA_PROTOCOL:
{
@@ -1968,6 +2005,9 @@ irsnd_ISR (void)
case IRMP_SAMSUNG_PROTOCOL:
case IRMP_SAMSUNG32_PROTOCOL:
#endif
+#if IRSND_SUPPORT_SAMSUNG48_PROTOCOL == 1
+ case IRMP_SAMSUNG48_PROTOCOL:
+#endif
#if IRSND_SUPPORT_MATSUSHITA_PROTOCOL == 1
case IRMP_MATSUSHITA_PROTOCOL:
#endif
diff --git a/irsndconfig.h b/irsndconfig.h
index 6360ba8..f237484 100644
--- a/irsndconfig.h
+++ b/irsndconfig.h
@@ -5,7 +5,7 @@
*
* Copyright (c) 2010-2013 Frank Meyer - frank(at)fli4l.de
*
- * $Id: irsndconfig.h,v 1.58 2014/06/23 06:56:00 fm Exp $
+ * $Id: irsndconfig.h,v 1.60 2014/07/10 09:49:24 fm Exp $
*
* ATMEGA88 @ 8 MHz
*
@@ -79,6 +79,7 @@
#define IRSND_SUPPORT_LEGO_PROTOCOL 0 // LEGO Power RC >= 20000 ~150 bytes
#define IRSND_SUPPORT_RCMM_PROTOCOL 0 // RCMM 12,24, or 32 >= 20000 DON'T CHANGE, NOT SUPPORTED YET!
#define IRSND_SUPPORT_LGAIR_PROTOCOL 0 // LG Air Condition >= 10000 ~150 bytes.
+#define IRSND_SUPPORT_SAMSUNG48_PROTOCOL 0 // Samsung48 >= 10000 ~100 bytes
/*---------------------------------------------------------------------------------------------------------------------------------------------------
* AVR section: