]> cloudbase.mooo.com Git - irmp.git/commitdiff
version 2.0.0-pre1: added NEC42 protocol
authorukw <ukw@aeb2e35e-bfc4-4214-b83c-9e8de998ed28>
Thu, 10 Mar 2011 12:32:30 +0000 (12:32 +0000)
committerukw <ukw@aeb2e35e-bfc4-4214-b83c-9e8de998ed28>
Thu, 10 Mar 2011 12:32:30 +0000 (12:32 +0000)
git-svn-id: svn://mikrocontroller.net/irmp@67 aeb2e35e-bfc4-4214-b83c-9e8de998ed28

IR-Data/universal-15kHz.txt
README.txt
irmp.c
irmp.h
irmpconfig.h

index 98be82c02d9abcd814ad50a81bd2d5bdf0759248..de4a9d4fa02523065abdb5c00fcfa4b334b11ab4 100644 (file)
@@ -31,7 +31,7 @@
 # 16\r
 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111100000000011111110000000001111111100000000011111111000000000111111100000000011111111000000000111111100000000001111111000000000011111110000000001111111000000000011111111111111111111111100000000011111111111111111111111110000000001111111111111111111111110000000001111111111111111111111111000000000111111111111111111111111000000000011111111111111111111111100000000011111111111111111111111100000000001111111000000000111111110000000001111111111111111111111110000000001111111111111111111111111000000000111111111111111111111111100000000011111110000000001111111100000000011111111000000000111111111111111111111111000000000111111111111111111111111000000000011111110000000000111111100000000011111111000000000111111111111111111111111000000000111111111111111111111111100000000011111111111111111111111100000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111110000000001111111111111111\r
 # 17\r
-### 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111100000000011111111000000000111111111111111111111111000000000111111111111111111111111100000000011111111000000000111111110000000001111111111111111111111110000000001111111111111111111111111000000000111111100000000001111111000000000111111110000000001111111100000000011111111000000000111111110000000001111111111111111111111110000000001111111100000000011111111000000000111111111111111111111111000000000011111111111111111111111100000000011111111000000000111111110000000001111111111111111111111110000000001111111111111111111111110000000000111111111111111111111111000000000111111111111111111111111000000000011111111111111111111111100000000011111111111111111111111100000000001111111111111111111111110000000001111111100000000011111111000000000111111110000000001111111111111111111111110000000001111111100000000011111111000000000111111111111111111111111000000000011111110000000000111111111111111111111111000000000111111111111111111111111000000000011111111111111111111111100000000011111111000000000111111111111111111111111000000000111111111111111111111111100000000011111110000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111100000000011111111111111111111\r
+0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111000000000111111110000000001111111111111111111111110000000001111111111111111111111111000000000111111110000000001111111100000000011111111111111111111111100000000011111111111111111111111110000000001111111000000000011111110000000001111111100000000011111111000000000111111110000000001111111100000000011111111111111111111111100000000011111111000000000111111110000000001111111111111111111111110000000000111111111111111111111111000000000111111110000000001111111100000000011111111111111111111111100000000011111111111111111111111100000000001111111111111111111111110000000001111111111111111111111110000000000111111111111111111111111000000000111111111111111111111111000000000011111111111111111111111100000000011111111000000000111111110000000001111111100000000011111111111111111111111100000000011111111000000000111111110000000001111111111111111111111110000000000111111100000000001111111111111111111111110000000001111111111111111111111110000000000111111111111111111111111000000000111111110000000001111111111111111111111110000000001111111111111111111111111000000000111111100000000001111111111111111111\r
 # 18\r
 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111110000000001111111111111111111111111000000000111111100000000001111111111111111111111110000000001111111111111111111111111000000000111111100000000011111111000000000111111100000000001111111111111111111111110000000001111111100000000011111111111111111111111100000000011111111000000000111111110000000001111111111111111111111110000000000111111111111111111111111000000000111111111111111111111111000000000011111111111111111111111100000000011111111111111111111111100000000001111111111111111111111110000000001111111100000000011111110000000001111111111111111111111111000000000111111100000000001111111000000000011111110000000001111111000000000011111110000000000111111111111111111111111000000000111111111111111111111111000000000111111110000000001111111111111111111111111000000000111111111111111111111111000000000111111111111111111111111100000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111100000000011111111111111111111111100000000011111111000000000111111111111111111111111000000000011111111111111111111111100000000011111111000000000111111100000000011111111000000000111111111111111111111111000000000011111110000000000111111111111111111111111000000000111111100000000001111111000000000111111111111111111111111100000000011111111111111111111111100000000011111111111111111111111110000000001111111111111111111111110000000000111111111111111111111111000000000111111111111111111111111100000000011111110000000001111111100000000011111111111111111111111100000000011111111000000000111111110000000001111111000000000111111110000000001111111100000000011111111111111111111111100000000001111111111111111111111110000000001111111000000000011111111111111111111111100000000011111111111111111111111110000000001111111111111111111111110000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111110000000001111111111111111111111111000000000111111100000000001111111111111111111111110000000001111111111111111111111110000000000111111100000000011111111000000000111111110000000001111111111111111111111110000000001111111100000000011111111111111111111111100000000001111111000000000111111110000000001111111111111111111111110000000001111111111111111111111111000000000111111111111111111111111000000000111111111111111111111111100000000011111111111111111111111100000000011111111111111111111111110000000001111111000000000011111110000000000111111111111111111111111000000000111111100000000001111111000000000111111110000000001111111100000000011111110000000001111111111111111111111111000000000111111111111111111111111000000000011111110000000001111111111111111111111110000000000111111111111111111111111000000000111111111111111111111111000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r
 # 19\r
@@ -39,7 +39,7 @@
 # 20\r
 000000000000001111111111111000000000000000000000000001111111111111111111111111000000000000000000000000000111111111111111111111111100000000000000000000000000011111111111100000000000000111111111111000000000000001111111111110000000000000011111111111111111111111110000000000000011111111111100000000000000000000000000011111111111100000000000000111111111111111\r
 # 21\r
-### 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111100000000011111111111111111111111100000000001111111111111111111111110000000001111111111111111111111110000000000111111100000000001111111111111111111111110000000001111111111111111111111110000000000111111111111111111111111000000000111111100000000001111111000000000011111110000000000111111100000000011111111000000000111111110000000001111111100000000011111110000000000111111100000000001111111111111111111111110000000001111111100000000011111111000000000111111100000000001111111111111111111111110000000001111111111111111111111110000000000111111111111111111111111000000000111111111111111111111111100000000011111111111111111111111100000000011111111111111111111111110000000001111111000000000011111110000000001111111100000000011111111000000000111111110000000001111111100000000011111111000000000111111100000000011111111111111111111111110000000001111111111111111111111110000000001111111111111111111111111000000000111111111111111111111111000000000111111111111111111111111100000000011111111111111111111111100000000001111111111111111111111110000000001111111111111111111111110000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111100000000011111111111111111111\r
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111110000000001111111111111111111111110000000000111111111111111111111111000000000111111111111111111111111000000000011111110000000000111111111111111111111111000000000111111111111111111111111000000000011111111111111111111111100000000011111110000000000111111100000000001111111000000000011111110000000001111111100000000011111111000000000111111110000000001111111000000000011111110000000000111111111111111111111111000000000111111110000000001111111100000000011111110000000000111111111111111111111111000000000111111111111111111111111000000000011111111111111111111111100000000011111111111111111111111110000000001111111111111111111111110000000001111111111111111111111111000000000111111100000000001111111000000000111111110000000001111111100000000011111111000000000111111110000000001111111100000000011111110000000001111111111111111111111111000000000111111111111111111111111000000000111111111111111111111111100000000011111111111111111111111100000000011111111111111111111111110000000001111111111111111111111110000000000111111111111111111111111000000000111111111111111111111111000000000011111111111111111111\r
 # 22\r
 000000000000000000000000000000000000000001111111111111000000011111111111100000001111110000001111110000000000000000000011111111111111111100000001111110000000111111000000011111100000001111100000000000000111111111111000000011111100000011111100000001111110000000111111000000011111000000000000001111110000001111111111111000000011111000000001111111111111111111\r
 # 23\r
 # 84\r
 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111100000000011111110000000001111111100000000011111111000000000111111100000000001111111000000000111111110000000001111111000000000111111110000000001111111100000000011111111111111111111111100000000001111111111111111111111110000000001111111111111111111111110000000001111111111111111111111111000000000111111111111111111111111000000000011111111111111111111111100000000011111111111111111111111110000000001111111000000000111111110000000001111111111111111111111111000000000111111111111111111111111000000000111111111111111111111111000000000011111110000000000111111100000000011111110000000000111111111111111111111111000000000111111111111111111111111100000000011111110000000001111111100000000011111111000000000111111111111111111111111000000000011111111111111111111111100000000011111111111111111111111100000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111110000000001111111111111111\r
 # 85\r
-### 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111100000000001111111000000000111111111111111111111111100000000011111111111111111111111100000000011111111000000000111111110000000001111111111111111111111111000000000111111111111111111111111000000000111111110000000001111111100000000011111111000000000111111110000000001111111000000000011111110000000001111111111111111111111111000000000111111110000000001111111000000000011111111111111111111111100000000011111111111111111111111100000000001111111000000000011111110000000001111111111111111111111110000000000111111111111111111111111000000000111111111111111111111111000000000011111111111111111111111100000000011111111111111111111111110000000001111111111111111111111110000000001111111111111111111111111000000000111111100000000001111111000000000111111110000000001111111111111111111111111000000000111111110000000001111111000000000111111111111111111111111100000000011111111000000000111111111111111111111111000000000011111111111111111111111100000000011111111111111111111111100000000011111111000000000111111111111111111111111100000000011111111111111111111111100000000011111111000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111100000000011111111111111111111\r
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111110000000000111111100000000011111111111111111111111110000000001111111111111111111111110000000001111111100000000011111111000000000111111111111111111111111100000000011111111111111111111111100000000011111111000000000111111110000000001111111100000000011111111000000000111111100000000001111111000000000111111111111111111111111100000000011111111000000000111111100000000001111111111111111111111110000000001111111111111111111111110000000000111111100000000001111111000000000111111111111111111111111000000000011111111111111111111111100000000011111111111111111111111100000000001111111111111111111111110000000001111111111111111111111111000000000111111111111111111111111000000000111111111111111111111111100000000011111110000000000111111100000000011111111000000000111111111111111111111111100000000011111111000000000111111100000000011111111111111111111111110000000001111111100000000011111111111111111111111100000000001111111111111111111111110000000001111111111111111111111110000000001111111100000000011111111111111111111111110000000001111111111111111111111110000000001111111100000000011111111111111111111\r
 # 86\r
 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111000000000111111111111111111111111100000000011111110000000000111111111111111111111111000000000111111111111111111111111000000000011111110000000001111111100000000011111111000000000111111111111111111111111000000000111111110000000001111111111111111111111110000000000111111100000000011111111000000000111111111111111111111111000000000111111111111111111111111100000000011111111111111111111111100000000011111111111111111111111110000000001111111111111111111111110000000000111111111111111111111111000000000111111110000000001111111000000000011111111111111111111111100000000011111111000000000111111100000000011111111000000000111111110000000001111111000000000011111111111111111111111100000000011111111111111111111111100000000001111111000000000111111111111111111111111100000000011111111111111111111111100000000011111111111111111111111110000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111110000000001111111111111111111111110000000001111111100000000011111111111111111111111100000000001111111111111111111111110000000001111111000000000011111110000000001111111100000000011111111111111111111111110000000001111111000000000111111111111111111111111100000000011111110000000001111111100000000011111111111111111111111110000000001111111111111111111111110000000001111111111111111111111111000000000111111111111111111111111000000000111111111111111111111111100000000011111111111111111111111100000000011111111000000000111111110000000001111111111111111111111110000000000111111100000000011111111000000000111111100000000011111111000000000111111110000000001111111111111111111111110000000001111111111111111111111111000000000111111100000000001111111111111111111111110000000001111111111111111111111110000000000111111111111111111111111000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111000000000111111111111111111111111100000000011111110000000001111111111111111111111111000000000111111111111111111111111000000000011111110000000001111111100000000011111110000000001111111111111111111111111000000000111111110000000001111111111111111111111110000000001111111100000000011111110000000000111111111111111111111111000000000111111111111111111111111100000000011111111111111111111111100000000011111111111111111111111110000000001111111111111111111111110000000000111111111111111111111111000000000111111110000000001111111000000000111111111111111111111111100000000011111110000000000111111100000000011111111000000000111111100000000011111111000000000111111111111111111111111100000000011111111111111111111111100000000011111111000000000111111111111111111111111000000000011111111111111111111111100000000011111111111111111111111110000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r
 # 87\r
 # 88\r
 000000000000001111111111110000000000000000000000000001111111111111111111111111000000000000000000000000000111111111111111111111111100000000000000000000000000011111111111100000000000000111111111111000000000000001111111111110000000000000011111111111111111111111110000000000000011111111111100000000000000000000000000011111111111100000000000000111111111111111\r
 # 89\r
-### 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111000000000011111111111111111111111100000000011111111111111111111111100000000001111111111111111111111110000000001111111100000000011111111111111111111111100000000001111111111111111111111110000000001111111111111111111111110000000000111111100000000011111111000000000111111110000000001111111100000000011111110000000000111111100000000001111111000000000011111110000000001111111100000000011111111111111111111111100000000001111111000000000111111110000000001111111100000000011111111111111111111111100000000001111111111111111111111110000000001111111111111111111111111000000000111111111111111111111111000000000111111111111111111111111100000000011111111111111111111111100000000011111111000000000111111110000000001111111100000000011111111000000000111111100000000001111111000000000111111110000000001111111100000000011111111111111111111111100000000011111111111111111111111110000000001111111111111111111111110000000001111111111111111111111111000000000111111111111111111111111100000000011111111111111111111111100000000011111111111111111111111110000000001111111111111111111111110000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111000000000011111111111111111111\r
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111100000000001111111111111111111111110000000001111111111111111111111110000000000111111111111111111111111000000000111111110000000001111111111111111111111110000000000111111111111111111111111000000000111111111111111111111111000000000011111110000000001111111100000000011111111000000000111111110000000001111111000000000011111110000000000111111100000000001111111000000000111111110000000001111111111111111111111110000000000111111100000000011111111000000000111111110000000001111111111111111111111110000000000111111111111111111111111000000000111111111111111111111111100000000011111111111111111111111100000000011111111111111111111111110000000001111111111111111111111110000000001111111100000000011111111000000000111111110000000001111111100000000011111110000000000111111100000000011111111000000000111111110000000001111111111111111111111110000000001111111111111111111111111000000000111111111111111111111111000000000111111111111111111111111100000000011111111111111111111111110000000001111111111111111111111110000000001111111111111111111111111000000000111111111111111111111111000000000111111111111111\r
 # 90\r
 000000000000000000000000000000000000000001111111111111000000011111111111100000001111100000000111110000000000000000000011111111111111111100000001111110000000111111000000011111000000001111100000000000000111111111111000000011111000000001111100000001111110000000111110000000011111000000000000001111100000000111111111110000000011111000000011111111111111111111\r
 # 91\r
index 05a2a9aacea0037acc749df28f46020effd1629b..f7c5c5c236f0910c49e8eec79300e7cf047b11b5 100644 (file)
@@ -1,8 +1,8 @@
 IRMP - Infrared Multi Protocol Decoder\r
 --------------------------------------\r
 \r
-Version IRMP:  1.9.9  27.02.2010\r
-Version IRSND: 1.9.1  22.01.2010\r
+Version IRMP:  2.0.0-pre1 10.03.2010\r
+Version IRSND: 1.9.1      22.01.2010\r
 \r
 Dokumentation:\r
  \r
diff --git a/irmp.c b/irmp.c
index 8c0c6a74304bd8b255bc248df2c86490c7dc1e1f..5c35ccf04769a2f9e22ff3115c2153e2a1177260 100644 (file)
--- a/irmp.c
+++ b/irmp.c
@@ -3,7 +3,7 @@
  *\r
  * Copyright (c) 2009-2010 Frank Meyer - frank(at)fli4l.de\r
  *\r
- * $Id: irmp.c,v 1.97 2011/02/25 15:24:06 fm Exp $\r
+ * $Id: irmp.c,v 1.99 2011/03/10 12:29:13 fm Exp $\r
  *\r
  * ATMEGA88 @ 8 MHz\r
  *\r
  *   RC6\r
  *   ---\r
  *\r
- *   RC6 frame:  1 start bit + 1 bit "1" + 3 mode bits + 1 toggle bit + 16 data bits + 2666 µs pause\r
+ *   RC6 frame:  1 start bit + 1 bit "1" + 3 mode bits + 1 toggle bit + 16 data bits + 2666 us pause\r
  *   RC6 data:   8 address bits + 8 command bits\r
  *\r
  *   start  bit               toggle bit "0":      toggle bit "1":     data/mode "0":      data/mode "1":\r
@@ -957,11 +957,11 @@ static PROGMEM IRMP_PARAMETER nec_rep_param =
 \r
 #endif\r
 \r
-#if IRMP_SUPPORT_NEC16_PROTOCOL == 1\r
+#if IRMP_SUPPORT_NEC42_PROTOCOL == 1\r
 \r
-static PROGMEM IRMP_PARAMETER nec16_param =\r
+static PROGMEM IRMP_PARAMETER nec42_param =\r
 {\r
-    IRMP_NEC16_PROTOCOL,                                                // protocol:        ir protocol\r
+    IRMP_NEC42_PROTOCOL,                                                // protocol:        ir protocol\r
     NEC_PULSE_LEN_MIN,                                                  // pulse_1_len_min: minimum length of pulse with bit value 1\r
     NEC_PULSE_LEN_MAX,                                                  // pulse_1_len_max: maximum length of pulse with bit value 1\r
     NEC_1_PAUSE_LEN_MIN,                                                // pause_1_len_min: minimum length of pause with bit value 1\r
@@ -970,14 +970,14 @@ static PROGMEM IRMP_PARAMETER nec16_param =
     NEC_PULSE_LEN_MAX,                                                  // pulse_0_len_max: maximum length of pulse with bit value 0\r
     NEC_0_PAUSE_LEN_MIN,                                                // pause_0_len_min: minimum length of pause with bit value 0\r
     NEC_0_PAUSE_LEN_MAX,                                                // pause_0_len_max: maximum length of pause with bit value 0\r
-    NEC16_ADDRESS_OFFSET,                                               // address_offset:  address offset\r
-    NEC16_ADDRESS_OFFSET + NEC16_ADDRESS_LEN,                           // address_end:     end of address\r
-    NEC16_COMMAND_OFFSET,                                               // command_offset:  command offset\r
-    NEC16_COMMAND_OFFSET + NEC16_COMMAND_LEN,                           // command_end:     end of command\r
-    NEC16_COMPLETE_DATA_LEN,                                            // complete_len:    complete length of frame\r
-    NEC16_STOP_BIT,                                                     // stop_bit:        flag: frame has stop bit\r
-    NEC16_LSB,                                                          // lsb_first:       flag: LSB first\r
-    NEC16_FLAGS                                                         // flags:           some flags\r
+    NEC42_ADDRESS_OFFSET,                                               // address_offset:  address offset\r
+    NEC42_ADDRESS_OFFSET + NEC_ADDRESS_LEN,                             // address_end:     end of address\r
+    NEC42_COMMAND_OFFSET,                                               // command_offset:  command offset\r
+    NEC42_COMMAND_OFFSET + NEC_COMMAND_LEN,                             // command_end:     end of command\r
+    NEC42_COMPLETE_DATA_LEN,                                            // complete_len:    complete length of frame\r
+    NEC_STOP_BIT,                                                       // stop_bit:        flag: frame has stop bit\r
+    NEC_LSB,                                                            // lsb_first:       flag: LSB first\r
+    NEC_FLAGS                                                           // flags:           some flags\r
 };\r
 \r
 #endif\r
@@ -1609,7 +1609,7 @@ irmp_get_data (IRMP_DATA * irmp_data_p)
 static uint16_t irmp_tmp_address;                                                       // ir address\r
 static uint16_t irmp_tmp_command;                                                       // ir command\r
 \r
-#if IRMP_SUPPORT_RC5_PROTOCOL == 1 && (IRMP_SUPPORT_FDC_PROTOCOL == 1 || IRMP_SUPPORT_RCCAR_PROTOCOL == 1)\r
+#if IRMP_SUPPORT_RC5_PROTOCOL == 1 && (IRMP_SUPPORT_FDC_PROTOCOL == 1 || IRMP_SUPPORT_RCCAR_PROTOCOL == 1) || IRMP_SUPPORT_NEC42_PROTOCOL == 1\r
 static uint16_t irmp_tmp_address2;                                                      // ir address\r
 static uint16_t irmp_tmp_command2;                                                      // ir command\r
 #endif\r
@@ -1666,6 +1666,13 @@ irmp_store_bit (uint8_t value)
         }\r
     }\r
 \r
+#if IRMP_SUPPORT_NEC42_PROTOCOL == 1\r
+    else if (irmp_param.protocol == IRMP_NEC42_PROTOCOL && irmp_bit >= 13 && irmp_bit < 26)\r
+    {\r
+        irmp_tmp_address2 |= (((uint16_t) (value)) << (irmp_bit - 13));                             // CV wants cast\r
+    }\r
+#endif\r
+\r
 #if IRMP_SUPPORT_SAMSUNG_PROTOCOL == 1\r
     else if (irmp_param.protocol == IRMP_SAMSUNG_PROTOCOL && irmp_bit >= SAMSUNG_ID_OFFSET && irmp_bit < SAMSUNG_ID_OFFSET + SAMSUNG_ID_LEN)\r
     {\r
@@ -1791,7 +1798,7 @@ irmp_ISR (void)
                     irmp_tmp_command        = 0;\r
                     irmp_tmp_address        = 0;\r
 \r
-#if IRMP_SUPPORT_RC5_PROTOCOL == 1 && (IRMP_SUPPORT_FDC_PROTOCOL == 1 || IRMP_SUPPORT_RCCAR_PROTOCOL == 1)\r
+#if IRMP_SUPPORT_RC5_PROTOCOL == 1 && (IRMP_SUPPORT_FDC_PROTOCOL == 1 || IRMP_SUPPORT_RCCAR_PROTOCOL == 1) || IRMP_SUPPORT_NEC42_PROTOCOL == 1\r
                     irmp_tmp_command2       = 0;\r
                     irmp_tmp_address2       = 0;\r
 #endif\r
@@ -1872,7 +1879,7 @@ irmp_ISR (void)
                         ANALYZE_PRINTF ("protocol = NEC or JVC repeat frame, start bit timings: pulse: %3d - %3d, pause: %3d - %3d\n",\r
                                         JVC_START_BIT_PULSE_LEN_MIN, JVC_START_BIT_PULSE_LEN_MAX,\r
                                         JVC_REPEAT_START_BIT_PAUSE_LEN_MIN, JVC_REPEAT_START_BIT_PAUSE_LEN_MAX);\r
-                        irmp_param_p = (IRMP_PARAMETER *) &nec_param;                                               // tricky: use nec parameters\r
+                        irmp_param_p = (IRMP_PARAMETER *) &nec_param;\r
                     }\r
                     else\r
 #endif // IRMP_SUPPORT_JVC_PROTOCOL == 1\r
@@ -1881,10 +1888,18 @@ irmp_ISR (void)
                     if (irmp_pulse_time >= NEC_START_BIT_PULSE_LEN_MIN && irmp_pulse_time <= NEC_START_BIT_PULSE_LEN_MAX &&\r
                         irmp_pause_time >= NEC_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= NEC_START_BIT_PAUSE_LEN_MAX)\r
                     {\r
+#if IRMP_SUPPORT_NEC42_PROTOCOL == 1\r
+                        ANALYZE_PRINTF ("protocol = NEC42, start bit timings: pulse: %3d - %3d, pause: %3d - %3d\n",\r
+                                        NEC_START_BIT_PULSE_LEN_MIN, NEC_START_BIT_PULSE_LEN_MAX,\r
+                                        NEC_START_BIT_PAUSE_LEN_MIN, NEC_START_BIT_PAUSE_LEN_MAX);\r
+                        irmp_param_p = (IRMP_PARAMETER *) &nec42_param;\r
+#else\r
                         ANALYZE_PRINTF ("protocol = NEC, start bit timings: pulse: %3d - %3d, pause: %3d - %3d\n",\r
                                         NEC_START_BIT_PULSE_LEN_MIN, NEC_START_BIT_PULSE_LEN_MAX,\r
                                         NEC_START_BIT_PAUSE_LEN_MIN, NEC_START_BIT_PAUSE_LEN_MAX);\r
                         irmp_param_p = (IRMP_PARAMETER *) &nec_param;\r
+#endif\r
+\r
                     }\r
                     else if (irmp_pulse_time >= NEC_START_BIT_PULSE_LEN_MIN        && irmp_pulse_time <= NEC_START_BIT_PULSE_LEN_MAX &&\r
                              irmp_pause_time >= NEC_REPEAT_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= NEC_REPEAT_START_BIT_PAUSE_LEN_MAX)\r
@@ -2473,6 +2488,39 @@ irmp_ISR (void)
                                 irmp_start_bit_detected = 1;                                        // tricky: don't wait for another start bit...\r
                             }\r
 #endif // IRMP_SUPPORT_JVC_PROTOCOL == 1\r
+\r
+#if IRMP_SUPPORT_NEC42_PROTOCOL == 1\r
+#if IRMP_SUPPORT_NEC_PROTOCOL == 1\r
+                            else if (irmp_param.protocol == IRMP_NEC42_PROTOCOL && irmp_bit == 32)  // it was a NEC stop bit\r
+                            {\r
+                                ANALYZE_PRINTF ("Switching to NEC protocol\n");\r
+                                irmp_param.stop_bit     = TRUE;                                     // set flag\r
+                                irmp_param.protocol     = IRMP_NEC_PROTOCOL;                        // switch protocol\r
+                                irmp_param.complete_len = irmp_bit;                                 // patch length: 16 or 17\r
+\r
+                                //        0123456789ABC0123456789ABC0123456701234567\r
+                                // NEC42: AAAAAAAAAAAAAaaaaaaaaaaaaaCCCCCCCCcccccccc\r
+                                // NEC:   AAAAAAAAaaaaaaaaCCCCCCCCcccccccc\r
+                                irmp_tmp_address        |= (irmp_tmp_address2 & 0x0007) << 12;\r
+                                irmp_tmp_command        = (irmp_tmp_address2 >> 3) | (irmp_tmp_command << 10);\r
+                            }\r
+#endif // IRMP_SUPPORT_NEC_PROTOCOL == 1\r
+#if IRMP_SUPPORT_JVC_PROTOCOL == 1\r
+                            else if (irmp_param.protocol == IRMP_NEC42_PROTOCOL && irmp_bit == 16)  // it was a JVC stop bit\r
+                            {\r
+                                ANALYZE_PRINTF ("Switching to JVC protocol\n");\r
+                                irmp_param.stop_bit     = TRUE;                                     // set flag\r
+                                irmp_param.protocol     = IRMP_JVC_PROTOCOL;                        // switch protocol\r
+                                irmp_param.complete_len = irmp_bit;                                 // patch length: 16 or 17\r
+\r
+                                //        0123456789ABC0123456789ABC0123456701234567\r
+                                // NEC42: AAAAAAAAAAAAAaaaaaaaaaaaaaCCCCCCCCcccccccc\r
+                                // JVC:   AAAACCCCCCCCCCCC\r
+                                irmp_tmp_command        = (irmp_tmp_address >> 4) | (irmp_tmp_address2 << 9);   // set command: upper 12 bits are command bits\r
+                                irmp_tmp_address        = irmp_tmp_address & 0x000F;                            // lower 4 bits are address bits\r
+                            }\r
+#endif // IRMP_SUPPORT_JVC_PROTOCOL == 1\r
+#endif // IRMP_SUPPORT_NEC42_PROTOCOL == 1\r
                             else\r
                             {\r
                                 ANALYZE_PRINTF ("error 2: pause %d after data bit %d too long\n", irmp_pause_time, irmp_bit);\r
@@ -2770,11 +2818,20 @@ irmp_ISR (void)
 #endif // IRMP_SUPPORT_SAMSUNG_PROTOCOL\r
 \r
 #if IRMP_SUPPORT_NEC16_PROTOCOL\r
-                    if (irmp_param.protocol == IRMP_NEC_PROTOCOL && irmp_bit == 8 &&\r
-                        irmp_pause_time >= NEC_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= NEC_START_BIT_PAUSE_LEN_MAX)\r
+#if IRMP_SUPPORT_NEC42_PROTOCOL == 1\r
+                    if (irmp_param.protocol == IRMP_NEC42_PROTOCOL &&\r
+#else // IRMP_SUPPORT_NEC_PROTOCOL instead\r
+                    if (irmp_param.protocol == IRMP_NEC_PROTOCOL &&\r
+#endif // IRMP_SUPPORT_NEC42_PROTOCOL == 1\r
+                        irmp_bit == 8 && irmp_pause_time >= NEC_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= NEC_START_BIT_PAUSE_LEN_MAX)\r
                     {\r
                         ANALYZE_PRINTF ("Switching to NEC16 protocol\n");\r
-                        memcpy_P (&irmp_param, &nec16_param, sizeof (IRMP_PARAMETER));\r
+                        irmp_param.protocol = IRMP_NEC16_PROTOCOL;\r
+                        irmp_param.address_offset   = NEC16_ADDRESS_OFFSET;\r
+                        irmp_param.address_end      = NEC16_ADDRESS_OFFSET + NEC16_ADDRESS_LEN;\r
+                        irmp_param.command_offset   = NEC16_COMMAND_OFFSET;\r
+                        irmp_param.command_end      = NEC16_COMMAND_OFFSET + NEC16_COMMAND_LEN;\r
+                        irmp_param.complete_len     = NEC16_COMPLETE_DATA_LEN;\r
                         wait_for_space = 0;\r
                     }\r
                     else\r
@@ -3473,7 +3530,7 @@ get_fdc_key (uint16_t cmd)
                             case 0x000C: key = '\\';    break;\r
                             case 0x001C: key = '~';     break;\r
                             case 0x002D: key = '|';     break;\r
-                            case 0x0034: key = 'µ';     break;\r
+                            case 0x0034: key = 0xB5;    break; // Mu\r
                         }\r
                     }\r
                     else if (state & (STATE_LEFT_CTRL))\r
diff --git a/irmp.h b/irmp.h
index 5e0009226afc955f331c0d76d96265a37a0a48cd..b1235874a5f7d7ccaaa18a0075d4cdd795466f6b 100644 (file)
--- a/irmp.h
+++ b/irmp.h
@@ -3,7 +3,7 @@
  *\r
  * Copyright (c) 2009-2010 Frank Meyer - frank(at)fli4l.de\r
  *\r
- * $Id: irmp.h,v 1.58 2011/02/25 15:24:06 fm Exp $\r
+ * $Id: irmp.h,v 1.59 2011/03/10 12:29:14 fm Exp $\r
  *\r
  * ATMEGA88 @ 8 MHz\r
  *\r
@@ -67,14 +67,15 @@ typedef uint8_t     PAUSE_LEN;
 #define IRMP_SIEMENS_PROTOCOL                   17              // Siemens, e.g. Gigaset\r
 #define IRMP_FDC_PROTOCOL                       18              // FDC keyboard\r
 #define IRMP_RCCAR_PROTOCOL                     19              // RC Car\r
-#define IRMP_JVC_PROTOCOL                       20              // JVC\r
+#define IRMP_JVC_PROTOCOL                       20              // JVC (NEC with 16 bits)\r
 #define IRMP_RC6A_PROTOCOL                      21              // RC6A, e.g. Kathrein, XBOX\r
 #define IRMP_NIKON_PROTOCOL                     22              // Nikon\r
 #define IRMP_RUWIDO_PROTOCOL                    23              // Ruwido, e.g. T-Home Mediareceiver\r
 #define IRMP_IR60_PROTOCOL                      24              // IR60 (SAB2008)\r
 #define IRMP_KATHREIN_PROTOCOL                  25              // Kathrein\r
 #define IRMP_NETBOX_PROTOCOL                    26              // Netbox keyboard (bitserial)\r
-#define IRMP_NEC16_PROTOCOL                     27              // NEC with 16 bits\r
+#define IRMP_NEC16_PROTOCOL                     27              // NEC with 16 bits (incl. sync)\r
+#define IRMP_NEC42_PROTOCOL                     28              // NEC with 42 bits\r
 #define IRMP_IMON_PROTOCOL                      99              // Imon (bitserial) PROTOTYPE!\r
 \r
 // some flags of struct IRMP_PARAMETER:\r
@@ -116,21 +117,24 @@ typedef uint8_t     PAUSE_LEN;
 #define NEC_LSB                                 1                               // LSB...MSB\r
 #define NEC_FLAGS                               0                               // flags\r
 \r
+#define NEC42_ADDRESS_OFFSET                    0                               // skip 0 bits\r
+#define NEC42_ADDRESS_LEN                      13                               // read 13 address bits\r
+#define NEC42_COMMAND_OFFSET                   26                               // skip 26 bits (2 x 13 address bits)\r
+#define NEC42_COMMAND_LEN                       8                               // read 8 command bits\r
+#define NEC42_COMPLETE_DATA_LEN                42                               // complete length (2 x 13 + 2 x 8)\r
+\r
 #define NEC16_ADDRESS_OFFSET                    0                               // skip 0 bits\r
 #define NEC16_ADDRESS_LEN                       8                               // read 8 address bits\r
 #define NEC16_COMMAND_OFFSET                    8                               // skip 8 bits (8 address)\r
 #define NEC16_COMMAND_LEN                       8                               // read 8 bits (8 command)\r
 #define NEC16_COMPLETE_DATA_LEN                 16                              // complete length\r
-#define NEC16_STOP_BIT                          1                               // has stop bit\r
-#define NEC16_LSB                               1                               // LSB...MSB\r
-#define NEC16_FLAGS                             0                               // flags\r
 \r
 #define SAMSUNG_START_BIT_PULSE_TIME            4500.0e-6                       // 4500 usec pulse\r
 #define SAMSUNG_START_BIT_PAUSE_TIME            4500.0e-6                       // 4500 usec pause\r
 #define SAMSUNG_PULSE_TIME                       550.0e-6                       //  550 usec pulse\r
 #define SAMSUNG_1_PAUSE_TIME                    1450.0e-6                       // 1450 usec pause\r
 #define SAMSUNG_0_PAUSE_TIME                     450.0e-6                       //  450 usec pause\r
-#define SAMSUNG_FRAME_REPEAT_PAUSE_TIME           45.0e-3                       // frame repeat after 45ms\r
+#define SAMSUNG_FRAME_REPEAT_PAUSE_TIME           25.0e-3                       // frame repeat after 25ms\r
 #define SAMSUNG_ADDRESS_OFFSET                   0                              // skip 0 bits\r
 #define SAMSUNG_ADDRESS_LEN                     16                              // read 16 address bits\r
 #define SAMSUNG_ID_OFFSET                       17                              // skip 16 + 1 sync bit\r
index af07fb15696669d2a1bedc52c9d2a8cb5ae753bf..4507669fb22892de54566b16a61048eb3bf36f5a 100644 (file)
@@ -3,7 +3,7 @@
  *\r
  * Copyright (c) 2010 Frank Meyer - frank(at)fli4l.de\r
  *\r
- * $Id: irmpconfig.h,v 1.61 2011/02/25 15:24:06 fm Exp $\r
+ * $Id: irmpconfig.h,v 1.63 2011/03/10 12:29:14 fm Exp $\r
  *\r
  * ATMEGA88 @ 8 MHz\r
  *\r
 \r
 /*---------------------------------------------------------------------------------------------------------------------------------------------------\r
  * Change F_INTERRUPTS if you change the number of interrupts per second,\r
- * Normally, F_INTERRUPTS should be in the range from 10000 to 15000.\r
- * A value above 15000 costs additional program space, absolut maximum value is 20000.\r
+ * Normally, F_INTERRUPTS should be in the range from 10000 to 15000, typical is 15000\r
+ * A value above 15000 costs additional program space, absolute maximum value is 20000.\r
  *---------------------------------------------------------------------------------------------------------------------------------------------------\r
  */\r
 #ifndef F_INTERRUPTS\r
-#define F_INTERRUPTS                            10000   // interrupts per second, min: 10000, max: 20000\r
+#define F_INTERRUPTS                            15000   // interrupts per second, min: 10000, max: 20000, typ: 15000\r
 #endif\r
 \r
 /*---------------------------------------------------------------------------------------------------------------------------------------------------\r
  *---------------------------------------------------------------------------------------------------------------------------------------------------\r
  */\r
 \r
-//      Protocol                                Enable  Remarks                 F_INTERRUPTS            Program Space\r
+// Typical Protocols, disable here!             Enable  Remarks                 F_INTERRUPTS            Program Space\r
 #define IRMP_SUPPORT_SIRCS_PROTOCOL             1       // Sony SIRCS           >= 10000                 ~150 bytes\r
 #define IRMP_SUPPORT_NEC_PROTOCOL               1       // NEC + APPLE          >= 10000                 ~300 bytes\r
 #define IRMP_SUPPORT_SAMSUNG_PROTOCOL           1       // Samsung + Samsung32  >= 10000                 ~300 bytes\r
 #define IRMP_SUPPORT_MATSUSHITA_PROTOCOL        1       // Matsushita           >= 10000                  ~50 bytes\r
 #define IRMP_SUPPORT_KASEIKYO_PROTOCOL          1       // Kaseikyo             >= 10000                 ~250 bytes\r
 #define IRMP_SUPPORT_DENON_PROTOCOL             1       // DENON, Sharp         >= 10000                 ~250 bytes\r
-#define IRMP_SUPPORT_JVC_PROTOCOL               1       // JVC                  >= 10000                 ~150 bytes\r
+#define IRMP_SUPPORT_RC5_PROTOCOL               1       // RC5                  >= 10000                 ~250 bytes\r
+\r
+// More Protocols, enable here!                 Enable  Remarks                 F_INTERRUPTS            Program Space\r
+#define IRMP_SUPPORT_JVC_PROTOCOL               0       // JVC                  >= 10000                 ~150 bytes\r
 #define IRMP_SUPPORT_NEC16_PROTOCOL             0       // NEC16                >= 10000                 ~100 bytes\r
-#define IRMP_SUPPORT_RC5_PROTOCOL               0       // RC5                  >= 10000                 ~250 bytes\r
+#define IRMP_SUPPORT_NEC42_PROTOCOL             0       // NEC42                >= 10000                 ~100 bytes\r
 #define IRMP_SUPPORT_RC6_PROTOCOL               0       // RC6 & RC6A           >= 10000                 ~250 bytes\r
 #define IRMP_SUPPORT_IR60_PROTOCOL              0       // IR60 (SAB2008)       >= 10000                 ~300 bytes\r
 #define IRMP_SUPPORT_GRUNDIG_PROTOCOL           0       // Grundig              >= 10000                 ~300 bytes\r
 #define IRMP_SUPPORT_NEC_PROTOCOL               1\r
 #endif\r
 \r
+#if IRMP_SUPPORT_NEC16_PROTOCOL == 1 && IRMP_SUPPORT_NEC_PROTOCOL == 0\r
+#warning NEC16 protocol needs also NEC protocol, NEC protocol enabled\r
+#undef IRMP_SUPPORT_NEC_PROTOCOL\r
+#define IRMP_SUPPORT_NEC_PROTOCOL               1\r
+#endif\r
+\r
+#if IRMP_SUPPORT_NEC42_PROTOCOL == 1 && IRMP_SUPPORT_NEC_PROTOCOL == 0\r
+#warning NEC42 protocol needs also NEC protocol, NEC protocol enabled\r
+#undef IRMP_SUPPORT_NEC_PROTOCOL\r
+#define IRMP_SUPPORT_NEC_PROTOCOL               1\r
+#endif\r
+\r
 #if F_INTERRUPTS > 20000\r
-#error F_INTERRUPTS too high (should be not more than 20000)\r
+#error F_INTERRUPTS too high (should be not greater than 20000)\r
 #endif\r
 \r
 #endif /* _WC_IRMPCONFIG_H_ */\r