summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.txt4
-rw-r--r--irmp.c14
-rw-r--r--irmp.h8
-rw-r--r--irmpconfig.h4
-rw-r--r--irsnd.c120
-rw-r--r--irsndconfig.h4
6 files changed, 81 insertions, 73 deletions
diff --git a/README.txt b/README.txt
index b159fb7..147694e 100644
--- a/README.txt
+++ b/README.txt
@@ -1,8 +1,8 @@
IRMP - Infrared Multi Protocol Decoder
--------------------------------------
-Version IRMP: 1.8.1 02.09.2010
-Version IRSND: 1.8.0 92.09.2010
+Version IRMP: 1.9.0 18.01.2010
+Version IRSND: 1.9.0 18.01.2010
Dokumentation:
diff --git a/irmp.c b/irmp.c
index 5c11b1c..3b49646 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.86 2011/01/13 15:54:57 fm Exp $
+ * $Id: irmp.c,v 1.87 2011/01/18 13:02:15 fm Exp $
*
* ATMEGA88 @ 8 MHz
*
@@ -17,7 +17,7 @@
* KASEIKYO - Panasonic, Denon & other Japanese manufacturers (members of "Japan's Association for Electric Home Application")
* RECS80 - Philips, Nokia, Thomson, Nordmende, Telefunken, Saba
* RC5 - Philips and other European manufacturers
- * DENON - Denon
+ * DENON - Denon, Sharp
* RC6 - Philips and other European manufacturers
* APPLE - Apple
* NUBERT - Nubert Subwoofer System
@@ -153,10 +153,18 @@
* frame: 0 start bits + 16 data bits + stop bit + 65ms pause + 16 inverted data bits + stop bit
* data: 5 address bits + 10 command bits
*
+ * Theory:
+ *
* data "0": data "1":
* ------________________ ------______________
* 275us 775us 275us 1900us
*
+ * Practice:
+ *
+ * data "0": data "1":
+ * ------________________ ------______________
+ * 310us 745us 310us 1780us
+ *
*---------------------------------------------------------------------------------------------------------------------------------------------------
*
* RC6
@@ -2860,7 +2868,7 @@ print_spectrum (char * text, int * buf, int is_pulse)
}
}
- for (i = 0; i < 100; i++)
+ for (i = 1; i < 100; i++)
{
if (buf[i] > 0)
{
diff --git a/irmp.h b/irmp.h
index 4d47a59..5800330 100644
--- a/irmp.h
+++ b/irmp.h
@@ -3,7 +3,7 @@
*
* Copyright (c) 2009-2010 Frank Meyer - frank(at)fli4l.de
*
- * $Id: irmp.h,v 1.44 2010/11/09 19:18:32 fm Exp $
+ * $Id: irmp.h,v 1.45 2011/01/18 13:02:15 fm Exp $
*
* ATMEGA88 @ 8 MHz
*
@@ -191,9 +191,9 @@ typedef uint8_t PAUSE_LEN;
#define RC5_LSB 0 // MSB...LSB
#define RC5_FLAGS IRMP_PARAM_FLAG_IS_MANCHESTER // flags
-#define DENON_PULSE_TIME 275.0e-6 // 275 usec pulse
-#define DENON_1_PAUSE_TIME 1900.0e-6 // 1900 usec pause
-#define DENON_0_PAUSE_TIME 775.0e-6 // 775 usec pause
+#define DENON_PULSE_TIME 310.0e-6 // 310 usec pulse in practice, 275 in theory
+#define DENON_1_PAUSE_TIME 1780.0e-6 // 1780 usec pause in practice, 1900 in theory
+#define DENON_0_PAUSE_TIME 745.0e-6 // 745 usec pause in practice, 775 in theory
#define DENON_FRAMES 2 // DENON sends each frame 2 times
#define DENON_AUTO_REPETITION_PAUSE_TIME 65.0e-3 // inverted repetition after 65ms
#define DENON_FRAME_REPEAT_PAUSE_TIME 65.0e-3 // frame repeat after 65ms
diff --git a/irmpconfig.h b/irmpconfig.h
index dc44c55..4ef052d 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.46 2011/01/13 16:01:41 fm Exp $
+ * $Id: irmpconfig.h,v 1.47 2011/01/18 13:02:15 fm Exp $
*
* ATMEGA88 @ 8 MHz
*
@@ -48,7 +48,7 @@
#define IRMP_SUPPORT_SAMSUNG_PROTOCOL 1 // Samsung + Samsung32 >= 10000 ~250 bytes
#define IRMP_SUPPORT_MATSUSHITA_PROTOCOL 1 // Matsushita >= 10000 ~50 bytes
#define IRMP_SUPPORT_KASEIKYO_PROTOCOL 1 // Kaseikyo >= 10000 ~250 bytes
-#define IRMP_SUPPORT_DENON_PROTOCOL 1 // DENON >= 10000 ~250 bytes
+#define IRMP_SUPPORT_DENON_PROTOCOL 1 // DENON, Sharp >= 10000 ~250 bytes
#define IRMP_SUPPORT_JVC_PROTOCOL 1 // JVC >= 10000 ~250 bytes
#define IRMP_SUPPORT_RC5_PROTOCOL 1 // RC5 >= 10000 ~250 bytes
#define IRMP_SUPPORT_RC6_PROTOCOL 1 // RC6 & RC6A >= 10000 ~200 bytes
diff --git a/irsnd.c b/irsnd.c
index efae8e4..3cbe8d5 100644
--- a/irsnd.c
+++ b/irsnd.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2010 Frank Meyer - frank(at)fli4l.de
*
- * $Id: irsnd.c,v 1.28 2011/01/13 15:54:57 fm Exp $
+ * $Id: irsnd.c,v 1.29 2011/01/18 13:02:15 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
@@ -795,11 +795,11 @@ irsnd_ISR (void)
case IRMP_SIRCS_PROTOCOL:
{
startbit_pulse_len = SIRCS_START_BIT_PULSE_LEN;
- startbit_pause_len = SIRCS_START_BIT_PAUSE_LEN;
+ startbit_pause_len = SIRCS_START_BIT_PAUSE_LEN - 1;
pulse_1_len = SIRCS_1_PULSE_LEN;
- pause_1_len = SIRCS_PAUSE_LEN;
+ pause_1_len = SIRCS_PAUSE_LEN - 1;
pulse_0_len = SIRCS_0_PULSE_LEN;
- pause_0_len = SIRCS_PAUSE_LEN;
+ pause_0_len = SIRCS_PAUSE_LEN - 1;
has_stop_bit = SIRCS_STOP_BIT;
complete_data_len = SIRCS_MINIMUM_DATA_LEN + sircs_additional_bitlen;
n_auto_repetitions = (repeat_counter == 0) ? SIRCS_FRAMES : 1; // 3 frames auto repetition if first frame
@@ -816,19 +816,19 @@ irsnd_ISR (void)
if (repeat_counter > 0)
{
- startbit_pause_len = NEC_REPEAT_START_BIT_PAUSE_LEN;
+ startbit_pause_len = NEC_REPEAT_START_BIT_PAUSE_LEN - 1;
complete_data_len = 0;
}
else
{
- startbit_pause_len = NEC_START_BIT_PAUSE_LEN;
+ startbit_pause_len = NEC_START_BIT_PAUSE_LEN - 1;
complete_data_len = NEC_COMPLETE_DATA_LEN;
}
pulse_1_len = NEC_PULSE_LEN;
- pause_1_len = NEC_1_PAUSE_LEN;
+ pause_1_len = NEC_1_PAUSE_LEN - 1;
pulse_0_len = NEC_PULSE_LEN;
- pause_0_len = NEC_0_PAUSE_LEN;
+ pause_0_len = NEC_0_PAUSE_LEN - 1;
has_stop_bit = NEC_STOP_BIT;
n_auto_repetitions = 1; // 1 frame
auto_repetition_pause_len = 0;
@@ -841,11 +841,11 @@ irsnd_ISR (void)
case IRMP_SAMSUNG_PROTOCOL:
{
startbit_pulse_len = SAMSUNG_START_BIT_PULSE_LEN;
- startbit_pause_len = SAMSUNG_START_BIT_PAUSE_LEN;
+ startbit_pause_len = SAMSUNG_START_BIT_PAUSE_LEN - 1;
pulse_1_len = SAMSUNG_PULSE_LEN;
- pause_1_len = SAMSUNG_1_PAUSE_LEN;
+ pause_1_len = SAMSUNG_1_PAUSE_LEN - 1;
pulse_0_len = SAMSUNG_PULSE_LEN;
- pause_0_len = SAMSUNG_0_PAUSE_LEN;
+ pause_0_len = SAMSUNG_0_PAUSE_LEN - 1;
has_stop_bit = SAMSUNG_STOP_BIT;
complete_data_len = SAMSUNG_COMPLETE_DATA_LEN;
n_auto_repetitions = 1; // 1 frame
@@ -858,11 +858,11 @@ irsnd_ISR (void)
case IRMP_SAMSUNG32_PROTOCOL:
{
startbit_pulse_len = SAMSUNG_START_BIT_PULSE_LEN;
- startbit_pause_len = SAMSUNG_START_BIT_PAUSE_LEN;
+ startbit_pause_len = SAMSUNG_START_BIT_PAUSE_LEN - 1;
pulse_1_len = SAMSUNG_PULSE_LEN;
- pause_1_len = SAMSUNG_1_PAUSE_LEN;
+ pause_1_len = SAMSUNG_1_PAUSE_LEN - 1;
pulse_0_len = SAMSUNG_PULSE_LEN;
- pause_0_len = SAMSUNG_0_PAUSE_LEN;
+ pause_0_len = SAMSUNG_0_PAUSE_LEN - 1;
has_stop_bit = SAMSUNG_STOP_BIT;
complete_data_len = SAMSUNG32_COMPLETE_DATA_LEN;
n_auto_repetitions = SAMSUNG32_FRAMES; // 2 frames
@@ -876,11 +876,11 @@ irsnd_ISR (void)
case IRMP_MATSUSHITA_PROTOCOL:
{
startbit_pulse_len = MATSUSHITA_START_BIT_PULSE_LEN;
- startbit_pause_len = MATSUSHITA_START_BIT_PAUSE_LEN;
+ startbit_pause_len = MATSUSHITA_START_BIT_PAUSE_LEN - 1;
pulse_1_len = MATSUSHITA_PULSE_LEN;
- pause_1_len = MATSUSHITA_1_PAUSE_LEN;
+ pause_1_len = MATSUSHITA_1_PAUSE_LEN - 1;
pulse_0_len = MATSUSHITA_PULSE_LEN;
- pause_0_len = MATSUSHITA_0_PAUSE_LEN;
+ pause_0_len = MATSUSHITA_0_PAUSE_LEN - 1;
has_stop_bit = MATSUSHITA_STOP_BIT;
complete_data_len = MATSUSHITA_COMPLETE_DATA_LEN;
n_auto_repetitions = 1; // 1 frame
@@ -894,11 +894,11 @@ irsnd_ISR (void)
case IRMP_KASEIKYO_PROTOCOL:
{
startbit_pulse_len = KASEIKYO_START_BIT_PULSE_LEN;
- startbit_pause_len = KASEIKYO_START_BIT_PAUSE_LEN;
+ startbit_pause_len = KASEIKYO_START_BIT_PAUSE_LEN - 1;
pulse_1_len = KASEIKYO_PULSE_LEN;
- pause_1_len = KASEIKYO_1_PAUSE_LEN;
+ pause_1_len = KASEIKYO_1_PAUSE_LEN - 1;
pulse_0_len = KASEIKYO_PULSE_LEN;
- pause_0_len = KASEIKYO_0_PAUSE_LEN;
+ pause_0_len = KASEIKYO_0_PAUSE_LEN - 1;
has_stop_bit = KASEIKYO_STOP_BIT;
complete_data_len = KASEIKYO_COMPLETE_DATA_LEN;
n_auto_repetitions = (repeat_counter == 0) ? KASEIKYO_FRAMES : 1; // 2 frames auto repetition if first frame
@@ -912,11 +912,11 @@ irsnd_ISR (void)
case IRMP_RECS80_PROTOCOL:
{
startbit_pulse_len = RECS80_START_BIT_PULSE_LEN;
- startbit_pause_len = RECS80_START_BIT_PAUSE_LEN;
+ startbit_pause_len = RECS80_START_BIT_PAUSE_LEN - 1;
pulse_1_len = RECS80_PULSE_LEN;
- pause_1_len = RECS80_1_PAUSE_LEN;
+ pause_1_len = RECS80_1_PAUSE_LEN - 1;
pulse_0_len = RECS80_PULSE_LEN;
- pause_0_len = RECS80_0_PAUSE_LEN;
+ pause_0_len = RECS80_0_PAUSE_LEN - 1;
has_stop_bit = RECS80_STOP_BIT;
complete_data_len = RECS80_COMPLETE_DATA_LEN;
n_auto_repetitions = 1; // 1 frame
@@ -930,11 +930,11 @@ irsnd_ISR (void)
case IRMP_RECS80EXT_PROTOCOL:
{
startbit_pulse_len = RECS80EXT_START_BIT_PULSE_LEN;
- startbit_pause_len = RECS80EXT_START_BIT_PAUSE_LEN;
+ startbit_pause_len = RECS80EXT_START_BIT_PAUSE_LEN - 1;
pulse_1_len = RECS80EXT_PULSE_LEN;
- pause_1_len = RECS80EXT_1_PAUSE_LEN;
+ pause_1_len = RECS80EXT_1_PAUSE_LEN - 1;
pulse_0_len = RECS80EXT_PULSE_LEN;
- pause_0_len = RECS80EXT_0_PAUSE_LEN;
+ pause_0_len = RECS80EXT_0_PAUSE_LEN - 1;
has_stop_bit = RECS80EXT_STOP_BIT;
complete_data_len = RECS80EXT_COMPLETE_DATA_LEN;
n_auto_repetitions = 1; // 1 frame
@@ -964,7 +964,7 @@ irsnd_ISR (void)
case IRMP_RC6_PROTOCOL:
{
startbit_pulse_len = RC6_START_BIT_PULSE_LEN;
- startbit_pause_len = RC6_START_BIT_PAUSE_LEN;
+ startbit_pause_len = RC6_START_BIT_PAUSE_LEN - 1;
pulse_len = RC6_BIT_LEN;
pause_len = RC6_BIT_LEN;
has_stop_bit = RC6_STOP_BIT;
@@ -980,7 +980,7 @@ irsnd_ISR (void)
case IRMP_RC6A_PROTOCOL:
{
startbit_pulse_len = RC6_START_BIT_PULSE_LEN;
- startbit_pause_len = RC6_START_BIT_PAUSE_LEN;
+ startbit_pause_len = RC6_START_BIT_PAUSE_LEN - 1;
pulse_len = RC6_BIT_LEN;
pause_len = RC6_BIT_LEN;
has_stop_bit = RC6_STOP_BIT;
@@ -998,15 +998,15 @@ irsnd_ISR (void)
startbit_pulse_len = 0x00;
startbit_pause_len = 0x00;
pulse_1_len = DENON_PULSE_LEN;
- pause_1_len = DENON_1_PAUSE_LEN;
+ pause_1_len = DENON_1_PAUSE_LEN - 1;
pulse_0_len = DENON_PULSE_LEN;
- pause_0_len = DENON_0_PAUSE_LEN;
+ pause_0_len = DENON_0_PAUSE_LEN - 1;
has_stop_bit = DENON_STOP_BIT;
complete_data_len = DENON_COMPLETE_DATA_LEN;
n_auto_repetitions = DENON_FRAMES; // 2 frames, 2nd with inverted command
auto_repetition_pause_len = DENON_AUTO_REPETITION_PAUSE_LEN; // 65 ms pause after 1st frame
repeat_frame_pause_len = DENON_FRAME_REPEAT_PAUSE_LEN;
- irsnd_set_freq (IRSND_FREQ_32_KHZ);
+ irsnd_set_freq (IRSND_FREQ_38_KHZ); // in theory 32kHz, in practice 38kHz
break;
}
#endif
@@ -1014,11 +1014,11 @@ irsnd_ISR (void)
case IRMP_NUBERT_PROTOCOL:
{
startbit_pulse_len = NUBERT_START_BIT_PULSE_LEN;
- startbit_pause_len = NUBERT_START_BIT_PAUSE_LEN;
+ startbit_pause_len = NUBERT_START_BIT_PAUSE_LEN - 1;
pulse_1_len = NUBERT_1_PULSE_LEN;
- pause_1_len = NUBERT_1_PAUSE_LEN;
+ pause_1_len = NUBERT_1_PAUSE_LEN - 1;
pulse_0_len = NUBERT_0_PULSE_LEN;
- pause_0_len = NUBERT_0_PAUSE_LEN;
+ pause_0_len = NUBERT_0_PAUSE_LEN - 1;
has_stop_bit = NUBERT_STOP_BIT;
complete_data_len = NUBERT_COMPLETE_DATA_LEN;
n_auto_repetitions = NUBERT_FRAMES; // 2 frames
@@ -1032,11 +1032,11 @@ irsnd_ISR (void)
case IRMP_BANG_OLUFSEN_PROTOCOL:
{
startbit_pulse_len = BANG_OLUFSEN_START_BIT1_PULSE_LEN;
- startbit_pause_len = BANG_OLUFSEN_START_BIT1_PAUSE_LEN;
+ startbit_pause_len = BANG_OLUFSEN_START_BIT1_PAUSE_LEN - 1;
pulse_1_len = BANG_OLUFSEN_PULSE_LEN;
- pause_1_len = BANG_OLUFSEN_1_PAUSE_LEN;
+ pause_1_len = BANG_OLUFSEN_1_PAUSE_LEN - 1;
pulse_0_len = BANG_OLUFSEN_PULSE_LEN;
- pause_0_len = BANG_OLUFSEN_0_PAUSE_LEN;
+ pause_0_len = BANG_OLUFSEN_0_PAUSE_LEN - 1;
has_stop_bit = BANG_OLUFSEN_STOP_BIT;
complete_data_len = BANG_OLUFSEN_COMPLETE_DATA_LEN;
n_auto_repetitions = 1; // 1 frame
@@ -1051,7 +1051,7 @@ irsnd_ISR (void)
case IRMP_GRUNDIG_PROTOCOL:
{
startbit_pulse_len = GRUNDIG_OR_NOKIA_BIT_LEN;
- startbit_pause_len = GRUNDIG_OR_NOKIA_PRE_PAUSE_LEN;
+ startbit_pause_len = GRUNDIG_OR_NOKIA_PRE_PAUSE_LEN - 1;
pulse_len = GRUNDIG_OR_NOKIA_BIT_LEN;
pause_len = GRUNDIG_OR_NOKIA_BIT_LEN;
has_stop_bit = GRUNDIG_OR_NOKIA_STOP_BIT;
@@ -1068,7 +1068,7 @@ irsnd_ISR (void)
case IRMP_NOKIA_PROTOCOL:
{
startbit_pulse_len = GRUNDIG_OR_NOKIA_BIT_LEN;
- startbit_pause_len = GRUNDIG_OR_NOKIA_PRE_PAUSE_LEN;
+ startbit_pause_len = GRUNDIG_OR_NOKIA_PRE_PAUSE_LEN - 1;
pulse_len = GRUNDIG_OR_NOKIA_BIT_LEN;
pause_len = GRUNDIG_OR_NOKIA_BIT_LEN;
has_stop_bit = GRUNDIG_OR_NOKIA_STOP_BIT;
@@ -1100,12 +1100,12 @@ irsnd_ISR (void)
case IRMP_FDC_PROTOCOL:
{
startbit_pulse_len = FDC_START_BIT_PULSE_LEN;
- startbit_pause_len = FDC_START_BIT_PAUSE_LEN;
+ startbit_pause_len = FDC_START_BIT_PAUSE_LEN - 1;
complete_data_len = FDC_COMPLETE_DATA_LEN;
pulse_1_len = FDC_PULSE_LEN;
- pause_1_len = FDC_1_PAUSE_LEN;
+ pause_1_len = FDC_1_PAUSE_LEN - 1;
pulse_0_len = FDC_PULSE_LEN;
- pause_0_len = FDC_0_PAUSE_LEN;
+ pause_0_len = FDC_0_PAUSE_LEN - 1;
has_stop_bit = FDC_STOP_BIT;
n_auto_repetitions = 1; // 1 frame
auto_repetition_pause_len = 0;
@@ -1118,12 +1118,12 @@ irsnd_ISR (void)
case IRMP_RCCAR_PROTOCOL:
{
startbit_pulse_len = RCCAR_START_BIT_PULSE_LEN;
- startbit_pause_len = RCCAR_START_BIT_PAUSE_LEN;
+ startbit_pause_len = RCCAR_START_BIT_PAUSE_LEN - 1;
complete_data_len = RCCAR_COMPLETE_DATA_LEN;
pulse_1_len = RCCAR_PULSE_LEN;
- pause_1_len = RCCAR_1_PAUSE_LEN;
+ pause_1_len = RCCAR_1_PAUSE_LEN - 1;
pulse_0_len = RCCAR_PULSE_LEN;
- pause_0_len = RCCAR_0_PAUSE_LEN;
+ pause_0_len = RCCAR_0_PAUSE_LEN - 1;
has_stop_bit = RCCAR_STOP_BIT;
n_auto_repetitions = 1; // 1 frame
auto_repetition_pause_len = 0;
@@ -1141,12 +1141,12 @@ irsnd_ISR (void)
}
startbit_pulse_len = JVC_START_BIT_PULSE_LEN;
- startbit_pause_len = JVC_START_BIT_PAUSE_LEN;
+ startbit_pause_len = JVC_START_BIT_PAUSE_LEN - 1;
complete_data_len = JVC_COMPLETE_DATA_LEN;
pulse_1_len = JVC_PULSE_LEN;
- pause_1_len = JVC_1_PAUSE_LEN;
+ pause_1_len = JVC_1_PAUSE_LEN - 1;
pulse_0_len = JVC_PULSE_LEN;
- pause_0_len = JVC_0_PAUSE_LEN;
+ pause_0_len = JVC_0_PAUSE_LEN - 1;
has_stop_bit = JVC_STOP_BIT;
n_auto_repetitions = 1; // 1 frame
auto_repetition_pause_len = 0;
@@ -1160,12 +1160,12 @@ irsnd_ISR (void)
case IRMP_NIKON_PROTOCOL:
{
startbit_pulse_len = NIKON_START_BIT_PULSE_LEN;
- startbit_pause_len = 271; // NIKON_START_BIT_PAUSE_LEN;
+ startbit_pause_len = 271 - 1; // NIKON_START_BIT_PAUSE_LEN;
complete_data_len = NIKON_COMPLETE_DATA_LEN;
pulse_1_len = NIKON_PULSE_LEN;
- pause_1_len = NIKON_1_PAUSE_LEN;
+ pause_1_len = NIKON_1_PAUSE_LEN - 1;
pulse_0_len = NIKON_PULSE_LEN;
- pause_0_len = NIKON_0_PAUSE_LEN;
+ pause_0_len = NIKON_0_PAUSE_LEN - 1;
has_stop_bit = NIKON_STOP_BIT;
n_auto_repetitions = 1; // 1 frame
auto_repetition_pause_len = 0;
@@ -1256,12 +1256,12 @@ irsnd_ISR (void)
{
pulse_len = SAMSUNG_PULSE_LEN;
pause_len = (irsnd_buffer[current_bit / 8] & (1<<(7-(current_bit % 8)))) ?
- SAMSUNG_1_PAUSE_LEN : SAMSUNG_0_PAUSE_LEN;
+ (SAMSUNG_1_PAUSE_LEN - 1) : (SAMSUNG_0_PAUSE_LEN - 1);
}
else if (current_bit == SAMSUNG_ADDRESS_LEN) // send SYNC bit (16th bit)
{
pulse_len = SAMSUNG_PULSE_LEN;
- pause_len = SAMSUNG_START_BIT_PAUSE_LEN;
+ pause_len = SAMSUNG_START_BIT_PAUSE_LEN - 1;
}
else if (current_bit < SAMSUNG_COMPLETE_DATA_LEN) // send n'th bit
{
@@ -1269,7 +1269,7 @@ irsnd_ISR (void)
pulse_len = SAMSUNG_PULSE_LEN;
pause_len = (irsnd_buffer[cur_bit / 8] & (1<<(7-(cur_bit % 8)))) ?
- SAMSUNG_1_PAUSE_LEN : SAMSUNG_0_PAUSE_LEN;
+ (SAMSUNG_1_PAUSE_LEN - 1) : (SAMSUNG_0_PAUSE_LEN - 1);
}
}
else
@@ -1281,22 +1281,22 @@ irsnd_ISR (void)
if (current_bit == 0) // send 2nd start bit
{
pulse_len = BANG_OLUFSEN_START_BIT2_PULSE_LEN;
- pause_len = BANG_OLUFSEN_START_BIT2_PAUSE_LEN;
+ pause_len = BANG_OLUFSEN_START_BIT2_PAUSE_LEN - 1;
}
else if (current_bit == 1) // send 3rd start bit
{
pulse_len = BANG_OLUFSEN_START_BIT3_PULSE_LEN;
- pause_len = BANG_OLUFSEN_START_BIT3_PAUSE_LEN;
+ pause_len = BANG_OLUFSEN_START_BIT3_PAUSE_LEN - 1;
}
else if (current_bit == 2) // send 4th start bit
{
pulse_len = BANG_OLUFSEN_START_BIT2_PULSE_LEN;
- pause_len = BANG_OLUFSEN_START_BIT2_PAUSE_LEN;
+ pause_len = BANG_OLUFSEN_START_BIT2_PAUSE_LEN - 1;
}
else if (current_bit == 19) // send trailer bit
{
pulse_len = BANG_OLUFSEN_PULSE_LEN;
- pause_len = BANG_OLUFSEN_TRAILER_BIT_PAUSE_LEN;
+ pause_len = BANG_OLUFSEN_TRAILER_BIT_PAUSE_LEN - 1;
}
else if (current_bit < BANG_OLUFSEN_COMPLETE_DATA_LEN) // send n'th bit
{
@@ -1305,11 +1305,11 @@ irsnd_ISR (void)
if (cur_bit_value == last_bit_value)
{
- pause_len = BANG_OLUFSEN_R_PAUSE_LEN;
+ pause_len = BANG_OLUFSEN_R_PAUSE_LEN - 1;
}
else
{
- pause_len = cur_bit_value ? BANG_OLUFSEN_1_PAUSE_LEN : BANG_OLUFSEN_0_PAUSE_LEN;
+ pause_len = cur_bit_value ? (BANG_OLUFSEN_1_PAUSE_LEN - 1) : (BANG_OLUFSEN_0_PAUSE_LEN - 1);
last_bit_value = cur_bit_value;
}
}
diff --git a/irsndconfig.h b/irsndconfig.h
index 6988e03..11fdb87 100644
--- a/irsndconfig.h
+++ b/irsndconfig.h
@@ -3,7 +3,7 @@
*
* Copyright (c) 2010 Frank Meyer - frank(at)fli4l.de
*
- * $Id: irsndconfig.h,v 1.16 2010/11/17 10:33:10 fm Exp $
+ * $Id: irsndconfig.h,v 1.17 2011/01/18 13:02:15 fm Exp $
*
* ATMEGA88 @ 8 MHz
*
@@ -36,7 +36,7 @@
#define IRSND_SUPPORT_MATSUSHITA_PROTOCOL 1 // Matsushita >= 10000 uses ~200 bytes
#define IRSND_SUPPORT_KASEIKYO_PROTOCOL 1 // Kaseikyo >= 10000 uses ~150 bytes
#define IRSND_SUPPORT_RC5_PROTOCOL 1 // RC5 >= 10000 uses ~150 bytes
-#define IRSND_SUPPORT_DENON_PROTOCOL 1 // DENON >= 10000 uses ~200 bytes
+#define IRSND_SUPPORT_DENON_PROTOCOL 1 // DENON, Sharp >= 10000 uses ~200 bytes
#define IRSND_SUPPORT_JVC_PROTOCOL 1 // JVC >= 10000 uses ~150 bytes
#define IRSND_SUPPORT_RC6_PROTOCOL 1 // RC6 >= 10000 uses ~250 bytes
#define IRSND_SUPPORT_RC6A_PROTOCOL 1 // RC6A >= 10000 uses ~250 bytes