From fef942f60fe85e8787c0826d65b692b7387279ee Mon Sep 17 00:00:00 2001 From: ukw Date: Fri, 16 Apr 2010 10:09:14 +0000 Subject: [PATCH] Version 1.1.1: optimized timings for all protocols git-svn-id: svn://mikrocontroller.net/irmp@8 aeb2e35e-bfc4-4214-b83c-9e8de998ed28 --- IR-Data/Sony-RM-U305C.txt | 2 +- IR-Data/Sony_Bravia_RM-ED0009_new.txt | 14 +- IR-Data/recs80.txt | 2 - IR-Data/sony-rm-s311.txt | 5 + IR-Data/sony-television-service-commander.txt | 4 + IR-Data/test-suite.sh | 42 +++ README.txt | 3 +- irmp.c | 334 ++++++++++-------- irmp.exe | Bin 19968 -> 21504 bytes irmp.h | 28 +- irsnd.exe | Bin 12288 -> 12288 bytes 11 files changed, 269 insertions(+), 165 deletions(-) delete mode 100644 IR-Data/recs80.txt create mode 100644 IR-Data/sony-rm-s311.txt create mode 100644 IR-Data/sony-television-service-commander.txt create mode 100644 IR-Data/test-suite.sh diff --git a/IR-Data/Sony-RM-U305C.txt b/IR-Data/Sony-RM-U305C.txt index f7f6aa5..63d203d 100644 --- a/IR-Data/Sony-RM-U305C.txt +++ b/IR-Data/Sony-RM-U305C.txt @@ -1,5 +1,5 @@ # Test: 25, Code: SIRCS (1) Button 1 Tuner, Address: 0x00, Command: 0x16 -000000000000000000000000000111000000001111000000001111000000001111000000011111000000011110000000011110000000111110000000000000011110000000011110000000000000111110000000000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000011111000000011110000000111110000000111110000000111110000000111100000001111100000001111110000000000001111100000001111100000000000001111100000000000001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000111110000000111110000000111110000000111110000000111110000001111100000001111100000001111100000000000001111100000001111100000000000001111100000000000001111100000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001111100000001111100000011111100000011111000000011111000000011111000000011111000000111111000000000000011111000000011111000000000000111110000000000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000001111110000001111100000001111100000001111100000001111100000011111000000011111000000011111100000000000011111000000011111000000000000011111000000000000011111000000111111111111111 +000000000000000000000000001111000000001111000000001111000000001111000000011111000000011110000000011110000000111110000000000000011110000000011110000000000000111110000000000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000011111000000011110000000111110000000111110000000111110000000111100000001111100000001111110000000000001111100000001111100000000000001111100000000000001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000111110000000111110000000111110000000111110000000111110000001111100000001111100000001111100000000000001111100000001111100000000000001111100000000000001111100000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001111100000001111100000011111100000011111000000011111000000011111000000011111000000111111000000000000011111000000011111000000000000111110000000000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000001111110000001111100000001111100000001111100000001111100000011111000000011111000000011111100000000000011111000000011111000000000000011111000000000000011111000000111111111111111 # Test: 26, Code: SIRCS (1) Button 2 Tuner, Address: 0x00, Command: 0x816 00000000000000000000000000111100000000000000111100000000111100000001111100000001111000000001111000000001111000000011111000000000000001111000000011111000000000000011111000000000000011110000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000011110000000000000111110000000111110000000111110000000111100000001111100000001111100000001111100000000000001111100000001111100000000000001111100000000000001111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001111100000000000001111100000001111100000001111000000011111000000011111000000011111000000011111000000000000011111000000011111000000000000011111000000000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001111100000000000001111100000001111100000001111100000011111000000011111000000011111000000011111000000000000011111000000011111000000000000111111000000000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000111110000000000001111110000001111100000001111100000001111100000001111100000011111000000011111100000000000001111100000011111000000000000011111000000000000011111000000011111111111111111111 # Test: 27, Code: SIRCS (1) Button 3 Tuner, Address: 0x00, Command: 0x416 diff --git a/IR-Data/Sony_Bravia_RM-ED0009_new.txt b/IR-Data/Sony_Bravia_RM-ED0009_new.txt index f8c6a6f..0101498 100644 --- a/IR-Data/Sony_Bravia_RM-ED0009_new.txt +++ b/IR-Data/Sony_Bravia_RM-ED0009_new.txt @@ -63,7 +63,7 @@ #IR-cmd: 00010025005E 0000000000000000000000000111110000000000000111110000000111110000000000000011111000000000000011111000000000000001111000000000000001111100000001111100000001111100000001111100000000000000111100000001111100000001111100000000000000111110000000111110000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000001111000000000000001111100000001111100000000000001111100000000000000111100000000000000111110000000000000111110000000011110000000111110000000111110000000000000011111000000011111000000011111000000000000011111000000011111000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000111110000000000000111110000000111110000000000000011111000000000000011111000000000000001111000000000000001111100000001111100000001111100000001111100000000000001111100000001111100000001111100000000000000111100000001111100000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000001111000000000000001111100000001111100000000000001111100000000000000111100000000000000111110000000000000011110000000111110000000011110000000111110000000000000011111000000011111000000011110000000000000011111000000011111000000000000011111111111111111 #IR-cmd: 00010010001D -00000000000000000000000001111100000001111100000001111100000000000000111100000000000000111110000000000000111110000000111110000000000000111110000000000000011111000000011111000000011111000000011111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000111100000001111100000001111100000000000000111110000000000000111110000000000000111110000000011110000000000000011111000000000000011111000000011111000000011111000000011111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000111110000000111110000000111110000000000000011111000000000000011111000000000000001111000000001111000000000000001111100000000000001111100000001111100000001111100000001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000011111000000001111000000011111000000000000001111100000000000001111100000000000000111110000000111100000000000000111110000000000000111110000000111110000000111110000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111111111100000000000000000000000000111100000000111100000001111100000000000000111110000000000000111110000000000000111110000000111110000000000000011111000000000000011111000000011111000000011111000000011111000000011111111111111111 +00000000000000000000000001111100000001111100000001111100000000000000111100000000000000111110000000000000111110000000111110000000000000111110000000000000011111000000011111000000011111000000011111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000111100000001111100000001111100000000000000111110000000000000111110000000000000111110000000011110000000000000011111000000000000011111000000011111000000011111000000011111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000111110000000111110000000111110000000000000011111000000000000011111000000000000001111000000001111000000000000001111100000000000001111100000001111100000001111100000001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000011111000000001111000000011111000000000000001111100000000000001111100000000000000111110000000111100000000000000111110000000000000111110000000111110000000111110000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000111100000000111100000001111100000000000000111110000000000000111110000000000000111110000000111110000000000000011111000000000000011111000000011111000000011111000000011111000000011111111111111111 #IR-cmd: 00010014001D 00000000000000000000000001111100000001111100000001111100000000000001111100000000000000111110000000000000111110000000111110000000000000011110000000000000011111000000011111000000011111000000011111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000111110000000111110000000111110000000000000111110000000000000011111000000000000011111000000011111000000000000011111000000000000001111100000001111100000001111100000001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000001111000000001111000000001111000000000000001111100000000000001111100000000000000111100000000111100000000000000111110000000000000111110000000111110000000111110000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000111110000000111110000000111110000000000000111110000000000000011110000000000000011111000000011111000000000000011111000000000000001111000000001111000000001111000000001111000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000011111000000011111000000011111000000000000001111000000000000001111100000000000001111100000001111100000000000000111100000000000000111110000000111110000000111110000000111110000000111111111111111 #IR-cmd: 00010010001D @@ -103,7 +103,7 @@ #IR-cmd: 00010065006D 0000000000000000000000000011111000000000000011111000000000000011111000000011111000000000000001111100000000000001111100000001111100000000000000111110000000111110000000111110000000000000111110000000111110000000111110000000000000111110000000111110000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000111110000000000000111110000000000000111110000000111110000000000000011111000000000000011111000000011111000000000000011111000000011111000000011111000000000000001111100000001111100000001111100000000000001111100000001111100000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000001111100000000000001111100000000000001111100000001111100000000000000111110000000000000111110000000111110000000000000011111000000011111000000011111000000000000011111000000011111000000011111000000000000011111000000001111000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000111110000000000000011111000000000000011111000000011111000000000000001111100000000000001111100000001111100000000000001111100000001111100000001111100000000000000111110000000111110000000111110000000000000111110000000111110000000000000011111111111111 #IR-cmd: 00010025006D -0000000000000000000000000011111000000000000011111000000000000011111000000011111000000000000001111100000000000001111100000001111100000000000000111110000000111110000000111110000000000000111110000000111110000000111110000000000000111110000000111110000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001111100000000000000111110000000000000111110000000111110000000000000111110000000000000011111000000011111000000000000011111000000011111000000011111000000000000011111000000011111000000011111000000000000001111100000001111100000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000011111000000000000011111000000000000001111100000001111100000000000001111100000000000001111100000001111100000000000000111110000000111110000000111110000000000000111110000000111110000000111110000000000000111110000000111110000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110011100000000000000000000000000111110000000000000111110000000000000111110000000111110000000000000011111000000000000011111000000011111000000000000011111000000011111000000011111000000000000001111100000001111100000001111100000000000001111100000001111100000000000000111111111111111 +0000000000000000000000000011111000000000000011111000000000000011111000000011111000000000000001111100000000000001111100000001111100000000000000111110000000111110000000111110000000000000111110000000111110000000111110000000000000111110000000111110000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001111100000000000000111110000000000000111110000000111110000000000000111110000000000000011111000000011111000000000000011111000000011111000000011111000000000000011111000000011111000000011111000000000000001111100000001111100000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000011111000000000000011111000000000000001111100000001111100000000000001111100000000000001111100000001111100000000000000111110000000111110000000111110000000000000111110000000111110000000111110000000000000111110000000111110000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000111110000000000000111110000000000000111110000000111110000000000000011111000000000000011111000000011111000000000000011111000000011111000000011111000000000000001111100000001111100000001111100000000000001111100000001111100000000000000111111111111111 #IR-cmd: 00010025007D 0000000000000000000000000011111000000000000011111000000000000001111100000001111100000000000001111100000000000001111100000001111100000000000000111110000000111110000000111110000000000000111110000000111110000000111110000000000000011111000000011111000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000111110000000000000111110000000000000111110000000111110000000000000011111000000000000011111000000011111000000000000011111000000011111000000011111000000000000001111100000001111100000001111100000000000001111100000001111100000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000011111000000000000001111100000000000001111100000001111100000000000000111110000000000000111110000000111110000000000000111110000000111110000000111110000000000000011111000000011111000000011111000000000000011111000000011111000000000000001111111111111111 #IR-cmd: 000100100052 @@ -136,12 +136,12 @@ #IR-cmd: 000100100016 000000000000000000000000011111000000011111000000011111000000000000011111100000011111100000000000001111100000000000001111100000001111100000000000001111110000001111110000001111110000001111110000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001111100000001111100000001111100000000000001111100000001111100000000000000111110000000000000111110000000111110000000000000111110000000111110000000111110000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000111110000001111110000000111110000000000000111110000000111110000000000000111111000000000000011111000000011111000000000000011111000000011111000000011111000000011111000000011111111111111111 #IR-cmd: 000100100016 -0000000000000000000000000011111000000111111000000011111000000000000011111000000011111000000000000011111100000000000001111100000001111100000000000001111100000001111100000001111100000001111100000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000011111000000011111000000011111000000000000011111100000011111100000000000001111100000000000001111100000001111100000000000001111110000000111110000000111110000001111110000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001111100000001111100000001111100000000000001111100000001111100000000000001111110000000000000111110000000111110000000000000111110000000111110000000111110000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100111111111111111 -#IR-cmd: 000100100066 +0000000000000000000000000011111000000111111000000011111000000000000011111000000011111000000000000011111100000000000001111100000001111100000000000001111100000001111100000001111100000001111100000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000011111000000011111000000011111000000000000011111100000011111100000000000001111100000000000001111100000001111100000000000001111110000000111110000000111110000001111110000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001111100000001111100000001111100000000000001111100000001111100000000000001111110000000000000111110000000111110000000000000111110000000111110000000111110000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +#IR-cmd: 000100100066 1 00000000000000000000000001111100000000000001111100000000000001111110000000111110000001111100000000000000111110000000000000111110000000111110000000000000111111000000111110000000111110000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000111110000000000000111110000000000000111111000000111111000000111111000000000000011111000000000000011111000000011111000000000000001111100000011111100000011111000000011111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000111111000000000000011111000000000000011111000000011111000000011111000000000000011111100000000000001111100000001111100000000000001111100000001111100000001111100000001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001111100000000000001111100000000000000111110000001111110000001111110000000000000111110000000000000111110000000111110000000000000111111000000111111000000011111000000111110000000111111111111111111 -#IR-cmd: 000100100066 +#IR-cmd: 000100100066 2 00000000000000000000000001111100000000000001111110000000000000111110000000111110000000111110000000000000111110000000000000111111000000011111000000000000011111000000011111000000011111000000011111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000111111000000000000011111000000000000011111000000011111000000011111000000000000001111100000000000001111100000001111100000000000001111100000001111100000001111100000001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001111100000000000001111100000000000001111110000001111110000001111110000000000000111110000000000000111111000000111111000000000000011111000000011111000000011111000000011111000000011111111111111111 -#IR-cmd: 000100100066 +#IR-cmd: 000100100066 3 00000000000000000000000001111100000000000001111110000000000000111110000000111110000000111110000000000000111111000000000000111111000000111111000000000000011111000000011111000000011111000000011111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000011111000000000000011111000000000000011111100000001111100000011111100000000000001111100000000000001111100000001111100000000000001111110000001111110000001111110000001111110000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001111100000000000001111100000000000000111110000000111110000000111110000000000000111110000000000000111111000000111111000000000000011111000000011111000000011111000000011111000000011111111111111111 #IR-cmd: 000100100057 0000000000000000000000000111110000000000000011111000000011111000000000000011111000000011111000000000000011111100000000000001111100000000000001111100000000000001111110000001111110000001111110000001111110000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000011111100000000000001111100000001111100000000000001111100000001111100000000000001111110000000000000111110000000000000111110000000000000011111000000111111000000111111000000111111000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001111110000000000000111110000000111110000000000000111110000000111110000000000000011111000000000000011111000000000000011111000000000000001111100000001111100000001111100000011111100000011111111111111111111 @@ -237,7 +237,7 @@ #IR-cmd: 000100100024 000000000000000000000000011111000000011111000000000000011111000000011111000000011111000000000000001111100000001111100000001111100000000000001111100000001111100000001111100000001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001111100000001111100000000000000111110000000111110000000111110000000000000111110000000111110000000111110000000000000111110000000111110000000011110000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000011111000000011111000000000000011111000000011111000000011111000000000000001111100000001111100000001111100000000000001111100000001111100000001111100000001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000111110000000111110000000000000111110000000111110000000111110000000000000011111000000011111000000011111000000000000011111000000011111000000011111000000011111000000011111111111111111111 #IR-cmd: 000100120064 -0000000000000000000000000111110000000000000011111000000000000011111000000011111000000011111000000000000011111000000011111000000011111000000000000001111100000001111100000001111100000001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000001111100000000000001111100000000000001111100000001111100000001111100000000000000111110000000111110000000111110000000000000111110000000111110000000111110000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000011110000000000000011111000000000000011111000000011111000000011111000000000000001111100000001111100000001111100000000000001111100000001111100000001111100000001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001111100000000000000111110000000000000111110000000111110000000111110000000000000111110000000011110000000111110000000000000011111000000011111000000011111000000011111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111111111111111 +0000000000000000000000000111110000000000000011111000000000000011111000000011111000000011111000000000000011111000000011111000000011111000000000000001111100000001111100000001111100000001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000001111100000000000001111100000000000001111100000001111100000001111100000000000000111110000000111110000000111110000000000000111110000000111110000000111110000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000011110000000000000011111000000000000011111000000011111000000011111000000000000001111100000001111100000001111100000000000001111100000001111100000001111100000001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001111100000000000000111110000000000000111110000000111110000000111110000000000000111110000000011110000000111110000000000000011111000000011111000000011111000000011111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 #IR-cmd: 000100100064 00000000000000000000000000111110000000000000111110000000000000011110000000011110000000011110000000000000011111000000011111000000011111000000000000011111000000011111000000011111000000011111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000011111000000000000001111000000000000001111100000001111100000001111100000000000001111100000001111100000001111100000000000000111110000000111110000000111110000000111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000111110000000000000111110000000000000011111000000011111000000011111000000000000011111000000011111000000011111000000000000011111000000011111000000011111000000011111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000011111000000000000001111100000000000001111100000001111100000001111100000000000001111100000001111100000001111100000000000000111110000000111110000000111110000000111110000000111111111111111111111 #IR-cmd: 000100100064 diff --git a/IR-Data/recs80.txt b/IR-Data/recs80.txt deleted file mode 100644 index b67ac7d..0000000 --- a/IR-Data/recs80.txt +++ /dev/null @@ -1,2 +0,0 @@ -__---------------------------------------------------__---------------------------------------------------__---------------------------------------------------__---------------------------------------------------__----------------------------------------------------------------------------__---------------------------------------------------__----------------------------------------------------------------------------__---------------------------------------------------__----------------------------------------------------------------------------__---------------------------------------------------__----------------------------------------------------------------------------__---------------------------------------------------__--------------------------------------------------- -__---------------------------------------------------__---------------------------------------------------__---------------------------------------------------__---------------------------------------------------__----------------------------------------------------------------------------__---------------------------------------------------__----------------------------------------------------------------------------__---------------------------------------------------__----------------------------------------------------------------------------__---------------------------------------------------__----------------------------------------------------------------------------__---------------------------------------------------__--------------------------------------------------- diff --git a/IR-Data/sony-rm-s311.txt b/IR-Data/sony-rm-s311.txt new file mode 100644 index 0000000..32767a1 --- /dev/null +++ b/IR-Data/sony-rm-s311.txt @@ -0,0 +1,5 @@ +# CD/Play (kurz) +0000000000000000000000000111110000000000000111110000000111110000000000000111110000000111110000000111110000000000000111110000000111110000000111110000000111110000000111110000000111110000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000111110000000000000111110000000111110000000000000111111000000111111000000111111000000000000111111000000111111000000111111000000111111000000111111000000111111000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000111111000000000000111111000000111111000000000000111111000000111111000000111111000000000000111111000000111111000000111111000000111111000000111111000000111111000000000000111111111111111111111 +# CD/Play (laaaaang) 3 bis 4 sek +0000000000000000000000001111110000000000000111110000000111110000000000000111110000000111110000000111110000000000000111110000000111110000000111110000000111110000000111110000000111110000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000111110000000000000111110000000111110000000000000111110000000111110000000111110000000000000111110000000111110000000111110000000111110000000111110000000111110000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000111110000000000000111110000000111110000000000000111110000000111110000000111110000000000000111110000000111110000000111110000000111110000000111110000000111111000000000000111111111111111111111 +0000000000000000000000000111110000000111110000000000000111110000000111110000000111110000000000000111110000000000000111110000000111110000000000000111110000000111110000000111110000000111110000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000111110000000111110000000000000111110000000111110000000111110000000000000111110000000000000111111000000111111000000000000111111000000111111000000111111000000111111000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000111111000000111111000000000000111111000000111111000000111111000000000000111111000000000000111111000000111111000000000000111111000000111111000000111111000000111111000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000111111000000111111000000000000111111000000111111000000111111000000000000111111000000000000111111000000111111000000000000111111000000111111000000111111000000111111000000000000111111111111111111 diff --git a/IR-Data/sony-television-service-commander.txt b/IR-Data/sony-television-service-commander.txt new file mode 100644 index 0000000..02445b7 --- /dev/null +++ b/IR-Data/sony-television-service-commander.txt @@ -0,0 +1,4 @@ +# Raute +0000000000000000000000001111110000001111110000001111110000001111110000000000001111100000000000001111100000000000001111100000000000001111100000000000011111100000011111100000011111100000011111100000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000111111000000111111000000111111000000111111000000000000111110000000000000111110000000000000111110000000000000111110000000000001111110000001111110000001111110000001111110000001111111111111111 +# TT +000000000000000000000000111111000000000000111111000000000000111111000000000000111111000000000000111111000000000000111110000000000000111110000000000000111110000000000000111110000001111110000001111110000001111110000001111111111111111111 diff --git a/IR-Data/test-suite.sh b/IR-Data/test-suite.sh new file mode 100644 index 0000000..60a1b02 --- /dev/null +++ b/IR-Data/test-suite.sh @@ -0,0 +1,42 @@ +#! /bin/sh +for j in \ + DK_Digital.txt \ + Matsushita.txt \ + Panasonic-Blue-Ray.txt \ + RC5-Taste.txt \ + Samsung_DVD_Rec_00062C.txt \ + Samsung_TV.txt \ + Sony-RM-S-310.txt \ + Sony-RM-U305C.txt \ + Sony-RMT-D142P-DVD.txt \ + Sony-RMT-V406.txt \ + Sony_Bravia_RM-ED0009.txt \ + Sony_Bravia_RM-ED0009_new.txt \ + Yamaha-RAV388.txt \ + apple.txt \ + bo_beolink1000-10kHz.txt \ + denon.txt \ + elta_radio.txt \ + nec-repetition.txt \ + nec.txt \ + nubert-subwoofer.txt \ + orion_vcr_07660BM070.txt \ + panasonic-scan.txt \ + rc5.txt \ + rc5x-79.txt \ + rc5x.txt \ + rc6-hold.txt \ + rc6.txt \ + sharp-denon.txt \ + sharp-denon2.txt +do + echo "testing $j ..." + if ../irmp < $j | grep -q error + then + ../irmp < $j | grep error + echo "test failed" + exit 1 + fi +done +echo "all tests successful" +exit 0 diff --git a/README.txt b/README.txt index 7b390d5..40d9a36 100644 --- a/README.txt +++ b/README.txt @@ -1,7 +1,8 @@ IRMP - Infrared Multi Protocol Decoder -------------------------------------- -Version: 1.1 12.04.2010 +Version IRMP: 1.1.1 16.04.2010 +Version IRSND: 1.1.1 16.04.2010 Dokumentation: diff --git a/irmp.c b/irmp.c index 08ceada..f74363f 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.16 2010/04/12 13:26:46 fm Exp $ + * $Id: irmp.c,v 1.17 2010/04/16 09:23:29 fm Exp $ * * ATMEGA88 @ 8 MHz * @@ -20,6 +20,7 @@ * RC6 - Philips and other European manufacturers * APPLE - Apple * NUBERT - Nubert Subwoofer System + * B&O - Bang & Olufsen * PANASONIC - Panasonic (older, yet not implemented) * *--------------------------------------------------------------------------------------------------------------------------------------------------- @@ -290,9 +291,18 @@ typedef unsigned int16 uint16_t; #define IRMP_TIMEOUT_LEN (uint8_t)(F_INTERRUPTS * IRMP_TIMEOUT_TIME + 0.5) #define IRMP_REPETITION_TIME (uint16_t)(F_INTERRUPTS * 100.0e-3 + 0.5) // autodetect key repetition within 100 msec +#define MIN_TOLERANCE_00 1.0 // -0% +#define MAX_TOLERANCE_00 1.0 // +0% + +#define MIN_TOLERANCE_05 0.95 // -5% +#define MAX_TOLERANCE_05 1.05 // +5% + #define MIN_TOLERANCE_10 0.9 // -10% #define MAX_TOLERANCE_10 1.1 // +10% +#define MIN_TOLERANCE_15 0.85 // -15% +#define MAX_TOLERANCE_15 1.15 // +15% + #define MIN_TOLERANCE_20 0.8 // -20% #define MAX_TOLERANCE_20 1.2 // +20% @@ -308,145 +318,145 @@ typedef unsigned int16 uint16_t; #define MIN_TOLERANCE_60 0.4 // -60% #define MAX_TOLERANCE_60 1.6 // +60% -#define SIRCS_START_BIT_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * SIRCS_START_BIT_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) -#define SIRCS_START_BIT_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * SIRCS_START_BIT_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) -#define SIRCS_START_BIT_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * SIRCS_START_BIT_PAUSE_TIME * MIN_TOLERANCE_50 + 0.5) -#define SIRCS_START_BIT_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * SIRCS_START_BIT_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) -#define SIRCS_1_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * SIRCS_1_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) -#define SIRCS_1_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * SIRCS_1_PULSE_TIME * MAX_TOLERANCE_30 + 0.5) -#define SIRCS_0_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * SIRCS_0_PULSE_TIME * MIN_TOLERANCE_50 + 0.5) -#define SIRCS_0_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * SIRCS_0_PULSE_TIME * MAX_TOLERANCE_50 + 0.5) -#define SIRCS_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * SIRCS_PAUSE_TIME * MIN_TOLERANCE_50 + 0.5) -#define SIRCS_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * SIRCS_PAUSE_TIME * MAX_TOLERANCE_50 + 0.5) - -#define NEC_START_BIT_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * NEC_START_BIT_PULSE_TIME * MIN_TOLERANCE_40 + 0.5) -#define NEC_START_BIT_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * NEC_START_BIT_PULSE_TIME * MAX_TOLERANCE_40 + 0.5) -#define NEC_START_BIT_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * NEC_START_BIT_PAUSE_TIME * MIN_TOLERANCE_40 + 0.5) -#define NEC_START_BIT_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * NEC_START_BIT_PAUSE_TIME * MAX_TOLERANCE_40 + 0.5) -#define NEC_REPEAT_START_BIT_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * NEC_REPEAT_START_BIT_PAUSE_TIME * MIN_TOLERANCE_40 + 0.5) -#define NEC_REPEAT_START_BIT_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * NEC_REPEAT_START_BIT_PAUSE_TIME * MAX_TOLERANCE_40 + 0.5) -#define NEC_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * NEC_PULSE_TIME * MIN_TOLERANCE_40 + 0.5) -#define NEC_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * NEC_PULSE_TIME * MAX_TOLERANCE_40 + 0.5) -#define NEC_1_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * NEC_1_PAUSE_TIME * MIN_TOLERANCE_40 + 0.5) -#define NEC_1_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * NEC_1_PAUSE_TIME * MAX_TOLERANCE_40 + 0.5) -#define NEC_0_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * NEC_0_PAUSE_TIME * MIN_TOLERANCE_40 + 0.5) -#define NEC_0_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * NEC_0_PAUSE_TIME * MAX_TOLERANCE_40 + 0.5) - -#define SAMSUNG_START_BIT_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * SAMSUNG_START_BIT_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) -#define SAMSUNG_START_BIT_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * SAMSUNG_START_BIT_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) -#define SAMSUNG_START_BIT_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * SAMSUNG_START_BIT_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) -#define SAMSUNG_START_BIT_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * SAMSUNG_START_BIT_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) -#define SAMSUNG_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * SAMSUNG_PULSE_TIME * MIN_TOLERANCE_50 + 0.5) -#define SAMSUNG_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * SAMSUNG_PULSE_TIME * MAX_TOLERANCE_50 + 0.5) -#define SAMSUNG_1_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * SAMSUNG_1_PAUSE_TIME * MIN_TOLERANCE_50 + 0.5) -#define SAMSUNG_1_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * SAMSUNG_1_PAUSE_TIME * MAX_TOLERANCE_50 + 0.5) -#define SAMSUNG_0_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * SAMSUNG_0_PAUSE_TIME * MIN_TOLERANCE_50 + 0.5) -#define SAMSUNG_0_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * SAMSUNG_0_PAUSE_TIME * MAX_TOLERANCE_50 + 0.5) - -#define MATSUSHITA_START_BIT_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * MATSUSHITA_START_BIT_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) -#define MATSUSHITA_START_BIT_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * MATSUSHITA_START_BIT_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) -#define MATSUSHITA_START_BIT_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * MATSUSHITA_START_BIT_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) -#define MATSUSHITA_START_BIT_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * MATSUSHITA_START_BIT_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) -#define MATSUSHITA_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * MATSUSHITA_PULSE_TIME * MIN_TOLERANCE_40 + 0.5) -#define MATSUSHITA_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * MATSUSHITA_PULSE_TIME * MAX_TOLERANCE_40 + 0.5) -#define MATSUSHITA_1_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * MATSUSHITA_1_PAUSE_TIME * MIN_TOLERANCE_40 + 0.5) -#define MATSUSHITA_1_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * MATSUSHITA_1_PAUSE_TIME * MAX_TOLERANCE_40 + 0.5) -#define MATSUSHITA_0_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * MATSUSHITA_0_PAUSE_TIME * MIN_TOLERANCE_40 + 0.5) -#define MATSUSHITA_0_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * MATSUSHITA_0_PAUSE_TIME * MAX_TOLERANCE_40 + 0.5) - -#define KASEIKYO_START_BIT_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * KASEIKYO_START_BIT_PULSE_TIME * MIN_TOLERANCE_30 + 0.5) -#define KASEIKYO_START_BIT_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * KASEIKYO_START_BIT_PULSE_TIME * MAX_TOLERANCE_30 + 0.5) -#define KASEIKYO_START_BIT_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * KASEIKYO_START_BIT_PAUSE_TIME * MIN_TOLERANCE_30 + 0.5) -#define KASEIKYO_START_BIT_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * KASEIKYO_START_BIT_PAUSE_TIME * MAX_TOLERANCE_30 + 0.5) -#define KASEIKYO_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * KASEIKYO_PULSE_TIME * MIN_TOLERANCE_50 + 0.5) -#define KASEIKYO_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * KASEIKYO_PULSE_TIME * MAX_TOLERANCE_60 + 0.5) -#define KASEIKYO_1_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * KASEIKYO_1_PAUSE_TIME * MIN_TOLERANCE_50 + 0.5) -#define KASEIKYO_1_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * KASEIKYO_1_PAUSE_TIME * MAX_TOLERANCE_50 + 0.5) -#define KASEIKYO_0_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * KASEIKYO_0_PAUSE_TIME * MIN_TOLERANCE_50 + 0.5) -#define KASEIKYO_0_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * KASEIKYO_0_PAUSE_TIME * MAX_TOLERANCE_50 + 0.5) - -#define RECS80_START_BIT_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * RECS80_START_BIT_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) -#define RECS80_START_BIT_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * RECS80_START_BIT_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) -#define RECS80_START_BIT_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * RECS80_START_BIT_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) -#define RECS80_START_BIT_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * RECS80_START_BIT_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) -#define RECS80_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * RECS80_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) -#define RECS80_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * RECS80_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) -#define RECS80_1_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * RECS80_1_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) -#define RECS80_1_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * RECS80_1_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) -#define RECS80_0_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * RECS80_0_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) -#define RECS80_0_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * RECS80_0_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) - -#define RC5_START_BIT_LEN_MIN (uint8_t)(F_INTERRUPTS * RC5_BIT_TIME * MIN_TOLERANCE_20 + 0.5) -#define RC5_START_BIT_LEN_MAX (uint8_t)(F_INTERRUPTS * RC5_BIT_TIME * MAX_TOLERANCE_20 + 0.5) -#define RC5_BIT_LEN_MIN (uint8_t)(F_INTERRUPTS * RC5_BIT_TIME * MIN_TOLERANCE_20 + 0.5) -#define RC5_BIT_LEN_MAX (uint8_t)(F_INTERRUPTS * RC5_BIT_TIME * MAX_TOLERANCE_20 + 0.5) - -#define DENON_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * DENON_PULSE_TIME * MIN_TOLERANCE_50 + 0.5) -#define DENON_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * DENON_PULSE_TIME * MAX_TOLERANCE_50 + 0.5) -#define DENON_1_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * DENON_1_PAUSE_TIME * MIN_TOLERANCE_30 + 0.5) -#define DENON_1_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * DENON_1_PAUSE_TIME * MAX_TOLERANCE_30 + 0.5) -#define DENON_0_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * DENON_0_PAUSE_TIME * MIN_TOLERANCE_30 + 0.5) -#define DENON_0_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * DENON_0_PAUSE_TIME * MAX_TOLERANCE_30 + 0.5) - -#define RC6_START_BIT_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * RC6_START_BIT_PULSE_TIME * MIN_TOLERANCE_30 + 0.5) -#define RC6_START_BIT_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * RC6_START_BIT_PULSE_TIME * MAX_TOLERANCE_30 + 0.5) -#define RC6_START_BIT_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * RC6_START_BIT_PAUSE_TIME * MIN_TOLERANCE_30 + 0.5) -#define RC6_START_BIT_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * RC6_START_BIT_PAUSE_TIME * MAX_TOLERANCE_30 + 0.5) -#define RC6_TOGGLE_BIT_LEN_MIN (uint8_t)(F_INTERRUPTS * RC6_TOGGLE_BIT_TIME * MIN_TOLERANCE_20 + 0.5) -#define RC6_TOGGLE_BIT_LEN_MAX (uint8_t)(F_INTERRUPTS * RC6_TOGGLE_BIT_TIME * MAX_TOLERANCE_20 + 0.5) -#define RC6_BIT_LEN_MIN (uint8_t)(F_INTERRUPTS * RC6_BIT_TIME * MIN_TOLERANCE_30 + 0.5) -#define RC6_BIT_LEN_MAX (uint8_t)(F_INTERRUPTS * RC6_BIT_TIME * MAX_TOLERANCE_30 + 0.5) - -#define RECS80EXT_START_BIT_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * RECS80EXT_START_BIT_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) -#define RECS80EXT_START_BIT_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * RECS80EXT_START_BIT_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) -#define RECS80EXT_START_BIT_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * RECS80EXT_START_BIT_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) -#define RECS80EXT_START_BIT_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * RECS80EXT_START_BIT_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) -#define RECS80EXT_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * RECS80EXT_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) -#define RECS80EXT_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * RECS80EXT_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) -#define RECS80EXT_1_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * RECS80EXT_1_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) -#define RECS80EXT_1_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * RECS80EXT_1_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) -#define RECS80EXT_0_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * RECS80EXT_0_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) -#define RECS80EXT_0_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * RECS80EXT_0_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) - -#define NUBERT_START_BIT_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * NUBERT_START_BIT_PULSE_TIME * MIN_TOLERANCE_40 + 0.5) -#define NUBERT_START_BIT_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * NUBERT_START_BIT_PULSE_TIME * MAX_TOLERANCE_40 + 0.5) -#define NUBERT_START_BIT_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * NUBERT_START_BIT_PAUSE_TIME * MIN_TOLERANCE_40 + 0.5) -#define NUBERT_START_BIT_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * NUBERT_START_BIT_PAUSE_TIME * MAX_TOLERANCE_40 + 0.5) -#define NUBERT_1_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * NUBERT_1_PULSE_TIME * MIN_TOLERANCE_40 + 0.5) -#define NUBERT_1_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * NUBERT_1_PULSE_TIME * MAX_TOLERANCE_40 + 0.5) -#define NUBERT_1_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * NUBERT_1_PAUSE_TIME * MIN_TOLERANCE_40 + 0.5) -#define NUBERT_1_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * NUBERT_1_PAUSE_TIME * MAX_TOLERANCE_40 + 0.5) -#define NUBERT_0_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * NUBERT_0_PULSE_TIME * MIN_TOLERANCE_40 + 0.5) -#define NUBERT_0_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * NUBERT_0_PULSE_TIME * MAX_TOLERANCE_40 + 0.5) -#define NUBERT_0_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * NUBERT_0_PAUSE_TIME * MIN_TOLERANCE_40 + 0.5) -#define NUBERT_0_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * NUBERT_0_PAUSE_TIME * MAX_TOLERANCE_40 + 0.5) - -#define BANG_OLUFSEN_START_BIT1_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT1_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) -#define BANG_OLUFSEN_START_BIT1_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT1_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) -#define BANG_OLUFSEN_START_BIT1_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT1_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) -#define BANG_OLUFSEN_START_BIT1_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT1_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) -#define BANG_OLUFSEN_START_BIT2_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT2_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) -#define BANG_OLUFSEN_START_BIT2_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT2_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) -#define BANG_OLUFSEN_START_BIT2_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT2_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) -#define BANG_OLUFSEN_START_BIT2_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT2_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) -#define BANG_OLUFSEN_START_BIT3_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT3_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) -#define BANG_OLUFSEN_START_BIT3_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT3_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) -#define BANG_OLUFSEN_START_BIT3_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT3_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) -#define BANG_OLUFSEN_START_BIT3_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT3_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) -#define BANG_OLUFSEN_START_BIT4_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT4_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) -#define BANG_OLUFSEN_START_BIT4_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT4_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) -#define BANG_OLUFSEN_START_BIT4_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT4_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) -#define BANG_OLUFSEN_START_BIT4_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT4_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) -#define BANG_OLUFSEN_PULSE_LEN_MIN (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) -#define BANG_OLUFSEN_PULSE_LEN_MAX (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) -#define BANG_OLUFSEN_1_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_1_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) -#define BANG_OLUFSEN_1_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_1_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) -#define BANG_OLUFSEN_0_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_0_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) -#define BANG_OLUFSEN_0_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_0_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) -#define BANG_OLUFSEN_R_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_R_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) -#define BANG_OLUFSEN_R_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_R_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) -#define BANG_OLUFSEN_TRAILER_BIT_PAUSE_LEN_MIN (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_TRAILER_BIT_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) -#define BANG_OLUFSEN_TRAILER_BIT_PAUSE_LEN_MAX (uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_TRAILER_BIT_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) +#define SIRCS_START_BIT_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * SIRCS_START_BIT_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define SIRCS_START_BIT_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * SIRCS_START_BIT_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#define SIRCS_START_BIT_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * SIRCS_START_BIT_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1) +#define SIRCS_START_BIT_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * SIRCS_START_BIT_PAUSE_TIME * MAX_TOLERANCE_05 + 0.5) + 1) // only 5% to avoid conflict with RC6 +#define SIRCS_1_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * SIRCS_1_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define SIRCS_1_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * SIRCS_1_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#define SIRCS_0_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * SIRCS_0_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define SIRCS_0_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * SIRCS_0_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#define SIRCS_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * SIRCS_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define SIRCS_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * SIRCS_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) + +#define NEC_START_BIT_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * NEC_START_BIT_PULSE_TIME * MIN_TOLERANCE_40 + 0.5) - 1) +#define NEC_START_BIT_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * NEC_START_BIT_PULSE_TIME * MAX_TOLERANCE_40 + 0.5) + 1) +#define NEC_START_BIT_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * NEC_START_BIT_PAUSE_TIME * MIN_TOLERANCE_40 + 0.5) - 1) +#define NEC_START_BIT_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * NEC_START_BIT_PAUSE_TIME * MAX_TOLERANCE_40 + 0.5) + 1) +#define NEC_REPEAT_START_BIT_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * NEC_REPEAT_START_BIT_PAUSE_TIME * MIN_TOLERANCE_40 + 0.5) - 1) +#define NEC_REPEAT_START_BIT_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * NEC_REPEAT_START_BIT_PAUSE_TIME * MAX_TOLERANCE_40 + 0.5) + 1) +#define NEC_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * NEC_PULSE_TIME * MIN_TOLERANCE_40 + 0.5) - 1) +#define NEC_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * NEC_PULSE_TIME * MAX_TOLERANCE_40 + 0.5) + 1) +#define NEC_1_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * NEC_1_PAUSE_TIME * MIN_TOLERANCE_40 + 0.5) - 1) +#define NEC_1_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * NEC_1_PAUSE_TIME * MAX_TOLERANCE_40 + 0.5) + 1) +#define NEC_0_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * NEC_0_PAUSE_TIME * MIN_TOLERANCE_40 + 0.5) - 1) +#define NEC_0_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * NEC_0_PAUSE_TIME * MAX_TOLERANCE_40 + 0.5) + 1) + +#define SAMSUNG_START_BIT_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * SAMSUNG_START_BIT_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define SAMSUNG_START_BIT_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * SAMSUNG_START_BIT_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#define SAMSUNG_START_BIT_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * SAMSUNG_START_BIT_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define SAMSUNG_START_BIT_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * SAMSUNG_START_BIT_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#define SAMSUNG_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * SAMSUNG_PULSE_TIME * MIN_TOLERANCE_50 + 0.5) - 1) +#define SAMSUNG_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * SAMSUNG_PULSE_TIME * MAX_TOLERANCE_50 + 0.5) + 1) +#define SAMSUNG_1_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * SAMSUNG_1_PAUSE_TIME * MIN_TOLERANCE_50 + 0.5) - 1) +#define SAMSUNG_1_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * SAMSUNG_1_PAUSE_TIME * MAX_TOLERANCE_50 + 0.5) + 1) +#define SAMSUNG_0_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * SAMSUNG_0_PAUSE_TIME * MIN_TOLERANCE_50 + 0.5) - 1) +#define SAMSUNG_0_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * SAMSUNG_0_PAUSE_TIME * MAX_TOLERANCE_50 + 0.5) + 1) + +#define MATSUSHITA_START_BIT_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * MATSUSHITA_START_BIT_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1) +#define MATSUSHITA_START_BIT_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * MATSUSHITA_START_BIT_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1) +#define MATSUSHITA_START_BIT_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * MATSUSHITA_START_BIT_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1) +#define MATSUSHITA_START_BIT_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * MATSUSHITA_START_BIT_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1) +#define MATSUSHITA_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * MATSUSHITA_PULSE_TIME * MIN_TOLERANCE_40 + 0.5) - 1) +#define MATSUSHITA_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * MATSUSHITA_PULSE_TIME * MAX_TOLERANCE_40 + 0.5) + 1) +#define MATSUSHITA_1_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * MATSUSHITA_1_PAUSE_TIME * MIN_TOLERANCE_40 + 0.5) - 1) +#define MATSUSHITA_1_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * MATSUSHITA_1_PAUSE_TIME * MAX_TOLERANCE_40 + 0.5) + 1) +#define MATSUSHITA_0_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * MATSUSHITA_0_PAUSE_TIME * MIN_TOLERANCE_40 + 0.5) - 1) +#define MATSUSHITA_0_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * MATSUSHITA_0_PAUSE_TIME * MAX_TOLERANCE_40 + 0.5) + 1) + +#define KASEIKYO_START_BIT_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * KASEIKYO_START_BIT_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define KASEIKYO_START_BIT_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * KASEIKYO_START_BIT_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#define KASEIKYO_START_BIT_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * KASEIKYO_START_BIT_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define KASEIKYO_START_BIT_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * KASEIKYO_START_BIT_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#define KASEIKYO_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * KASEIKYO_PULSE_TIME * MIN_TOLERANCE_50 + 0.5) - 1) +#define KASEIKYO_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * KASEIKYO_PULSE_TIME * MAX_TOLERANCE_60 + 0.5) + 1) +#define KASEIKYO_1_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * KASEIKYO_1_PAUSE_TIME * MIN_TOLERANCE_50 + 0.5) - 1) +#define KASEIKYO_1_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * KASEIKYO_1_PAUSE_TIME * MAX_TOLERANCE_50 + 0.5) + 1) +#define KASEIKYO_0_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * KASEIKYO_0_PAUSE_TIME * MIN_TOLERANCE_50 + 0.5) - 1) +#define KASEIKYO_0_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * KASEIKYO_0_PAUSE_TIME * MAX_TOLERANCE_50 + 0.5) + 1) + +#define RECS80_START_BIT_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * RECS80_START_BIT_PULSE_TIME * MIN_TOLERANCE_00 + 0.5) - 1) +#define RECS80_START_BIT_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * RECS80_START_BIT_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#define RECS80_START_BIT_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * RECS80_START_BIT_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define RECS80_START_BIT_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * RECS80_START_BIT_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#define RECS80_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * RECS80_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define RECS80_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * RECS80_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#define RECS80_1_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * RECS80_1_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define RECS80_1_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * RECS80_1_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#define RECS80_0_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * RECS80_0_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define RECS80_0_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * RECS80_0_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) + +#define RC5_START_BIT_LEN_MIN ((uint8_t)(F_INTERRUPTS * RC5_BIT_TIME * MIN_TOLERANCE_20 + 0.5) - 1) +#define RC5_START_BIT_LEN_MAX ((uint8_t)(F_INTERRUPTS * RC5_BIT_TIME * MAX_TOLERANCE_20 + 0.5) + 1) +#define RC5_BIT_LEN_MIN ((uint8_t)(F_INTERRUPTS * RC5_BIT_TIME * MIN_TOLERANCE_20 + 0.5) - 1) +#define RC5_BIT_LEN_MAX ((uint8_t)(F_INTERRUPTS * RC5_BIT_TIME * MAX_TOLERANCE_20 + 0.5) + 1) + +#define DENON_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * DENON_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1) +#define DENON_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * DENON_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1) +#define DENON_1_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * DENON_1_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1) +#define DENON_1_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * DENON_1_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1) +#define DENON_0_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * DENON_0_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1) +#define DENON_0_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * DENON_0_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1) + +#define RC6_START_BIT_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * RC6_START_BIT_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define RC6_START_BIT_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * RC6_START_BIT_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#define RC6_START_BIT_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * RC6_START_BIT_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define RC6_START_BIT_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * RC6_START_BIT_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#define RC6_TOGGLE_BIT_LEN_MIN ((uint8_t)(F_INTERRUPTS * RC6_TOGGLE_BIT_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define RC6_TOGGLE_BIT_LEN_MAX ((uint8_t)(F_INTERRUPTS * RC6_TOGGLE_BIT_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#define RC6_BIT_LEN_MIN ((uint8_t)(F_INTERRUPTS * RC6_BIT_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define RC6_BIT_LEN_MAX ((uint8_t)(F_INTERRUPTS * RC6_BIT_TIME * MAX_TOLERANCE_10 + 0.5) + 1) + +#define RECS80EXT_START_BIT_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * RECS80EXT_START_BIT_PULSE_TIME * MIN_TOLERANCE_00 + 0.5) - 1) +#define RECS80EXT_START_BIT_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * RECS80EXT_START_BIT_PULSE_TIME * MAX_TOLERANCE_00 + 0.5) + 1) +#define RECS80EXT_START_BIT_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * RECS80EXT_START_BIT_PAUSE_TIME * MIN_TOLERANCE_05 + 0.5) - 1) +#define RECS80EXT_START_BIT_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * RECS80EXT_START_BIT_PAUSE_TIME * MAX_TOLERANCE_05 + 0.5) + 1) +#define RECS80EXT_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * RECS80EXT_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define RECS80EXT_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * RECS80EXT_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#define RECS80EXT_1_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * RECS80EXT_1_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define RECS80EXT_1_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * RECS80EXT_1_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#define RECS80EXT_0_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * RECS80EXT_0_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) +#define RECS80EXT_0_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * RECS80EXT_0_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) + +#define NUBERT_START_BIT_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * NUBERT_START_BIT_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1) +#define NUBERT_START_BIT_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * NUBERT_START_BIT_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1) +#define NUBERT_START_BIT_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * NUBERT_START_BIT_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1) +#define NUBERT_START_BIT_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * NUBERT_START_BIT_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1) +#define NUBERT_1_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * NUBERT_1_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1) +#define NUBERT_1_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * NUBERT_1_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1) +#define NUBERT_1_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * NUBERT_1_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1) +#define NUBERT_1_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * NUBERT_1_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1) +#define NUBERT_0_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * NUBERT_0_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1) +#define NUBERT_0_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * NUBERT_0_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1) +#define NUBERT_0_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * NUBERT_0_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1) +#define NUBERT_0_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * NUBERT_0_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1) + +#define BANG_OLUFSEN_START_BIT1_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT1_PULSE_TIME * MIN_TOLERANCE_05 + 0.5) - 1) +#define BANG_OLUFSEN_START_BIT1_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT1_PULSE_TIME * MAX_TOLERANCE_05 + 0.5) + 1) +#define BANG_OLUFSEN_START_BIT1_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT1_PAUSE_TIME * MIN_TOLERANCE_05 + 0.5) - 1) +#define BANG_OLUFSEN_START_BIT1_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT1_PAUSE_TIME * MAX_TOLERANCE_05 + 0.5) + 1) +#define BANG_OLUFSEN_START_BIT2_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT2_PULSE_TIME * MIN_TOLERANCE_05 + 0.5) - 1) +#define BANG_OLUFSEN_START_BIT2_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT2_PULSE_TIME * MAX_TOLERANCE_05 + 0.5) + 1) +#define BANG_OLUFSEN_START_BIT2_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT2_PAUSE_TIME * MIN_TOLERANCE_05 + 0.5) - 1) +#define BANG_OLUFSEN_START_BIT2_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT2_PAUSE_TIME * MAX_TOLERANCE_05 + 0.5) + 1) +#define BANG_OLUFSEN_START_BIT3_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT3_PULSE_TIME * MIN_TOLERANCE_05 + 0.5) - 1) +#define BANG_OLUFSEN_START_BIT3_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT3_PULSE_TIME * MAX_TOLERANCE_05 + 0.5) + 1) +#define BANG_OLUFSEN_START_BIT3_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT3_PAUSE_TIME * MIN_TOLERANCE_05 + 0.5) - 1) +#define BANG_OLUFSEN_START_BIT3_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT3_PAUSE_TIME * MAX_TOLERANCE_05 + 0.5) + 1) +#define BANG_OLUFSEN_START_BIT4_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT4_PULSE_TIME * MIN_TOLERANCE_05 + 0.5) - 1) +#define BANG_OLUFSEN_START_BIT4_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT4_PULSE_TIME * MAX_TOLERANCE_05 + 0.5) + 1) +#define BANG_OLUFSEN_START_BIT4_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT4_PAUSE_TIME * MIN_TOLERANCE_05 + 0.5) - 1) +#define BANG_OLUFSEN_START_BIT4_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_START_BIT4_PAUSE_TIME * MAX_TOLERANCE_05 + 0.5) + 1) +#define BANG_OLUFSEN_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_PULSE_TIME * MIN_TOLERANCE_05 + 0.5) - 1) +#define BANG_OLUFSEN_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_PULSE_TIME * MAX_TOLERANCE_05 + 0.5) + 1) +#define BANG_OLUFSEN_1_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_1_PAUSE_TIME * MIN_TOLERANCE_05 + 0.5) - 1) +#define BANG_OLUFSEN_1_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_1_PAUSE_TIME * MAX_TOLERANCE_05 + 0.5) + 1) +#define BANG_OLUFSEN_0_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_0_PAUSE_TIME * MIN_TOLERANCE_05 + 0.5) - 1) +#define BANG_OLUFSEN_0_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_0_PAUSE_TIME * MAX_TOLERANCE_05 + 0.5) + 1) +#define BANG_OLUFSEN_R_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_R_PAUSE_TIME * MIN_TOLERANCE_05 + 0.5) - 1) +#define BANG_OLUFSEN_R_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_R_PAUSE_TIME * MAX_TOLERANCE_05 + 0.5) + 1) +#define BANG_OLUFSEN_TRAILER_BIT_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_TRAILER_BIT_PAUSE_TIME * MIN_TOLERANCE_05 + 0.5) - 1) +#define BANG_OLUFSEN_TRAILER_BIT_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BANG_OLUFSEN_TRAILER_BIT_PAUSE_TIME * MAX_TOLERANCE_05 + 0.5) + 1) #define AUTO_REPETITION_LEN (uint16_t)(F_INTERRUPTS * AUTO_REPETITION_TIME + 0.5) // use uint16_t! @@ -1855,6 +1865,45 @@ irmp_ISR (void) // // usage: ./irmp [-v|-s|-a] < file +static void +print_timings (void) +{ + printf ("PROTOCOL START BIT NO. START BIT PULSE START BIT PAUSE\n"); + printf ("====================================================================================\n"); + printf ("SIRCS 1 %3d - %3d %3d - %3d\n", + SIRCS_START_BIT_PULSE_LEN_MIN, SIRCS_START_BIT_PULSE_LEN_MAX, SIRCS_START_BIT_PAUSE_LEN_MIN, SIRCS_START_BIT_PAUSE_LEN_MAX); + printf ("NEC 1 %3d - %3d %3d - %3d\n", + NEC_START_BIT_PULSE_LEN_MIN, NEC_START_BIT_PULSE_LEN_MAX, NEC_START_BIT_PAUSE_LEN_MIN, NEC_START_BIT_PAUSE_LEN_MAX); + printf ("NEC (rep) 1 %3d - %3d %3d - %3d\n", + NEC_START_BIT_PULSE_LEN_MIN, NEC_START_BIT_PULSE_LEN_MAX, NEC_REPEAT_START_BIT_PAUSE_LEN_MIN, NEC_REPEAT_START_BIT_PAUSE_LEN_MAX); + printf ("SAMSUNG 1 %3d - %3d %3d - %3d\n", + SAMSUNG_START_BIT_PULSE_LEN_MIN, SAMSUNG_START_BIT_PULSE_LEN_MAX, SAMSUNG_START_BIT_PAUSE_LEN_MIN, SAMSUNG_START_BIT_PAUSE_LEN_MAX); + printf ("MATSUSHITA 1 %3d - %3d %3d - %3d\n", + MATSUSHITA_START_BIT_PULSE_LEN_MIN, MATSUSHITA_START_BIT_PULSE_LEN_MAX, MATSUSHITA_START_BIT_PAUSE_LEN_MIN, MATSUSHITA_START_BIT_PAUSE_LEN_MAX); + printf ("KASEIKYO 1 %3d - %3d %3d - %3d\n", + KASEIKYO_START_BIT_PULSE_LEN_MIN, KASEIKYO_START_BIT_PULSE_LEN_MAX, KASEIKYO_START_BIT_PAUSE_LEN_MIN, KASEIKYO_START_BIT_PAUSE_LEN_MAX); + printf ("RECS80 1 %3d - %3d %3d - %3d\n", + RECS80_START_BIT_PULSE_LEN_MIN, RECS80_START_BIT_PULSE_LEN_MAX, RECS80_START_BIT_PAUSE_LEN_MIN, RECS80_START_BIT_PAUSE_LEN_MAX); + printf ("RC5 1 %3d - %3d %3d - %3d\n", + RC5_START_BIT_LEN_MIN, RC5_START_BIT_LEN_MAX, RC5_START_BIT_LEN_MIN, RC5_START_BIT_LEN_MAX); + printf ("DENON 1 %3d - %3d %3d - %3d or %3d - %3d\n", + DENON_PULSE_LEN_MIN, DENON_PULSE_LEN_MAX, DENON_1_PAUSE_LEN_MIN, DENON_1_PAUSE_LEN_MAX, DENON_0_PAUSE_LEN_MIN, DENON_0_PAUSE_LEN_MAX); + printf ("RC6 1 %3d - %3d %3d - %3d\n", + RC6_START_BIT_PULSE_LEN_MIN, RC6_START_BIT_PULSE_LEN_MAX, RC6_START_BIT_PAUSE_LEN_MIN, RC6_START_BIT_PAUSE_LEN_MAX); + printf ("RECS80EXT 1 %3d - %3d %3d - %3d\n", + RECS80EXT_START_BIT_PULSE_LEN_MIN, RECS80EXT_START_BIT_PULSE_LEN_MAX, RECS80EXT_START_BIT_PAUSE_LEN_MIN, RECS80EXT_START_BIT_PAUSE_LEN_MAX); + printf ("NUBERT 1 %3d - %3d %3d - %3d\n", + NUBERT_START_BIT_PULSE_LEN_MIN, NUBERT_START_BIT_PULSE_LEN_MAX, NUBERT_START_BIT_PAUSE_LEN_MIN, NUBERT_START_BIT_PAUSE_LEN_MAX); + printf ("BANG_OLUFSEN 1 %3d - %3d %3d - %3d\n", + BANG_OLUFSEN_START_BIT1_PULSE_LEN_MIN, BANG_OLUFSEN_START_BIT1_PULSE_LEN_MAX, BANG_OLUFSEN_START_BIT1_PAUSE_LEN_MIN, BANG_OLUFSEN_START_BIT1_PAUSE_LEN_MAX); + printf ("BANG_OLUFSEN 2 %3d - %3d %3d - %3d\n", + BANG_OLUFSEN_START_BIT2_PULSE_LEN_MIN, BANG_OLUFSEN_START_BIT2_PULSE_LEN_MAX, BANG_OLUFSEN_START_BIT2_PAUSE_LEN_MIN, BANG_OLUFSEN_START_BIT2_PAUSE_LEN_MAX); + printf ("BANG_OLUFSEN 3 %3d - %3d %3d - %3d\n", + BANG_OLUFSEN_START_BIT3_PULSE_LEN_MIN, BANG_OLUFSEN_START_BIT3_PULSE_LEN_MAX, BANG_OLUFSEN_START_BIT3_PAUSE_LEN_MIN, BANG_OLUFSEN_START_BIT3_PAUSE_LEN_MAX); + printf ("BANG_OLUFSEN 4 %3d - %3d %3d - %3d\n", + BANG_OLUFSEN_START_BIT4_PULSE_LEN_MIN, BANG_OLUFSEN_START_BIT4_PULSE_LEN_MAX, BANG_OLUFSEN_START_BIT4_PAUSE_LEN_MIN, BANG_OLUFSEN_START_BIT4_PAUSE_LEN_MAX); +} + int main (int argc, char ** argv) { @@ -1916,6 +1965,11 @@ main (int argc, char ** argv) { silent = TRUE; } + else if (! strcmp (argv[1], "-p")) + { + print_timings (); + return (0); + } } IRMP_PIN = 0xFF; diff --git a/irmp.exe b/irmp.exe index ba9c43f622881cf74dd8bd19b654fb6c00fba95f..62f1033383137ef254e2825f15fa815277671ee0 100644 GIT binary patch delta 5374 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 HyXZdw2zT{A delta 3805 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 diff --git a/irmp.h b/irmp.h index 8820cf2..67a9895 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.12 2010/04/12 10:15:40 fm Exp $ + * $Id: irmp.h,v 1.13 2010/04/16 09:23:29 fm Exp $ * * ATMEGA88 @ 8 MHz * @@ -191,19 +191,19 @@ extern "C" #define NUBERT_STOP_BIT 1 // has stop bit #define NUBERT_LSB 0 // MSB? -#define BANG_OLUFSEN_START_BIT1_PULSE_TIME 210.0e-6 // 210 usec pulse -#define BANG_OLUFSEN_START_BIT1_PAUSE_TIME 3000.0e-6 // 3000 usec pause -#define BANG_OLUFSEN_START_BIT2_PULSE_TIME 210.0e-6 // 210 usec pulse -#define BANG_OLUFSEN_START_BIT2_PAUSE_TIME 3000.0e-6 // 3000 usec pause -#define BANG_OLUFSEN_START_BIT3_PULSE_TIME 210.0e-6 // 210 usec pulse -#define BANG_OLUFSEN_START_BIT3_PAUSE_TIME 15000.0e-6 // 15000 usec pause -#define BANG_OLUFSEN_START_BIT4_PULSE_TIME 210.0e-6 // 210 usec pulse -#define BANG_OLUFSEN_START_BIT4_PAUSE_TIME 3000.0e-6 // 3000 usec pause -#define BANG_OLUFSEN_PULSE_TIME 210.0e-6 // 210 usec pulse -#define BANG_OLUFSEN_1_PAUSE_TIME 9000.0e-6 // 9000 usec pause -#define BANG_OLUFSEN_0_PAUSE_TIME 3000.0e-6 // 3000 usec pause -#define BANG_OLUFSEN_R_PAUSE_TIME 6000.0e-6 // 6000 usec pause (repeat last bit) -#define BANG_OLUFSEN_TRAILER_BIT_PAUSE_TIME 12000.0e-6 // 12000 usec pause (trailer bit) +#define BANG_OLUFSEN_START_BIT1_PULSE_TIME 200.0e-6 // 200 usec pulse +#define BANG_OLUFSEN_START_BIT1_PAUSE_TIME 3125.0e-6 // 3125 usec pause +#define BANG_OLUFSEN_START_BIT2_PULSE_TIME 200.0e-6 // 200 usec pulse +#define BANG_OLUFSEN_START_BIT2_PAUSE_TIME 3125.0e-6 // 3125 usec pause +#define BANG_OLUFSEN_START_BIT3_PULSE_TIME 200.0e-6 // 200 usec pulse +#define BANG_OLUFSEN_START_BIT3_PAUSE_TIME 15625.0e-6 // 15625 usec pause +#define BANG_OLUFSEN_START_BIT4_PULSE_TIME 200.0e-6 // 200 usec pulse +#define BANG_OLUFSEN_START_BIT4_PAUSE_TIME 3125.0e-6 // 3125 usec pause +#define BANG_OLUFSEN_PULSE_TIME 200.0e-6 // 200 usec pulse +#define BANG_OLUFSEN_1_PAUSE_TIME 9375.0e-6 // 9375 usec pause +#define BANG_OLUFSEN_0_PAUSE_TIME 3125.0e-6 // 3125 usec pause +#define BANG_OLUFSEN_R_PAUSE_TIME 6250.0e-6 // 6250 usec pause (repeat last bit) +#define BANG_OLUFSEN_TRAILER_BIT_PAUSE_TIME 12500.0e-6 // 12500 usec pause (trailer bit) #define BANG_OLUFSEN_ADDRESS_OFFSET 0 // no address bits #define BANG_OLUFSEN_ADDRESS_LEN 0 // no address bits #define BANG_OLUFSEN_COMMAND_OFFSET 3 // skip startbits 2, 3, 4 diff --git a/irsnd.exe b/irsnd.exe index b4deea8e359f5f20ff5ccc15bb04b8fd9f61b8c9..332444dda0ce08ccd11c5f1d550d653af394cb6e 100644 GIT binary patch delta 176 zcmZojXh@jwf!WIN#Kh0OOk2Nfc4BPgmX$xoTI1}%z;ukY14zXkV{M1Y9Zl7z_V1LYci3Iio;CnxYlirPbj zk1#MWbRGP5L+XHvJ&XM2b9`)kAZJXzE^}1$5%;c+g-6Am8d#q^yrU#40W^WZdGkhD Ge<1+*u{sg} delta 176 zcmZojXh@jwf%)RLqZ2>-GBs`A?8Ml}Eh~47wZ_?jf$11)2at+7#@Y_yO#o7In;-C4 zGD-lINI3wNERqJ2FJl=Q7_3g03U8P;*^p0MLau`sBngqz2g)`46b4FGOitj76t#f} zA7Nl%=sNiAhSUKS8y30E=lIz8K+c$aUFN8$X3(~ZGgD)|Cf=<}TE5Hmu>nwR^5%`Q G{z3qhDm^X$ -- 2.39.2