]> cloudbase.mooo.com Git - irmp.git/commitdiff
Version 2.3.1: corrected OC0A for ATmega48/88/168/328
authorukw <ukw@aeb2e35e-bfc4-4214-b83c-9e8de998ed28>
Fri, 26 Oct 2012 08:22:19 +0000 (08:22 +0000)
committerukw <ukw@aeb2e35e-bfc4-4214-b83c-9e8de998ed28>
Fri, 26 Oct 2012 08:22:19 +0000 (08:22 +0000)
git-svn-id: svn://mikrocontroller.net/irmp@105 aeb2e35e-bfc4-4214-b83c-9e8de998ed28

README.txt
irmp.aps
irmp.c
irmpconfig.h
irsnd.aps
irsnd.c
irsndconfig.h

index de5971d8d5983b92acb07049091dc301187a2c6b..cfe134bbe4361fffcd221c1248f5d1e69ba0b0bb 100644 (file)
@@ -1,8 +1,8 @@
 IRMP - Infrared Multi Protocol Decoder\r
 --------------------------------------\r
 \r
-Version IRMP:  2.3.0 05.10.2012\r
-Version IRSND: 2.3.0 05.10.2012\r
+Version IRMP:  2.3.1 26.10.2012\r
+Version IRSND: 2.3.1 26.10.2012\r
 \r
 Dokumentation:\r
  \r
index 1bb586dfcb0274a73970060c969fc2a4f83c414c..c23bf73b68e2e0ae458c2bfef767711b5022de35 100644 (file)
--- a/irmp.aps
+++ b/irmp.aps
@@ -1 +1 @@
-<AVRStudio><MANAGEMENT><ProjectName>irmp</ProjectName><Created>07-Jan-2010 20:23:49</Created><LastEdit>22-May-2012 17:10:27</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>07-Jan-2010 20:23:49</Created><Version>4</Version><Build>4, 18, 0, 670</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\irmp.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>C:\avr\irmp\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>AVR Simulator</CURRENT_TARGET><CURRENT_PART>ATmega88.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>main.c</SOURCEFILE><SOURCEFILE>irmp.c</SOURCEFILE><HEADERFILE>irmp.h</HEADERFILE><HEADERFILE>irmpconfig.h</HEADERFILE><HEADERFILE>irmpprotocols.h</HEADERFILE><HEADERFILE>irmpsystem.h</HEADERFILE><OTHERFILE>default\irmp.lss</OTHERFILE><OTHERFILE>default\irmp.map</OTHERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega88</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>irmp.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>1</ISDIRTY><OPTIONS><OPTION><FILE>irmp.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>main.c</FILE><OPTIONLIST></OPTIONLIST></OPTION></OPTIONS><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -std=gnu99                                                                         -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\Program Files\WinAVR-20100110\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\Program Files\WinAVR-20100110\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><ProjectFiles><Files><Name>C:\avr\irmp\irmp.h</Name><Name>C:\avr\irmp\irmpconfig.h</Name><Name>C:\avr\irmp\irmpprotocols.h</Name><Name>C:\avr\irmp\irmpsystem.h</Name><Name>C:\avr\irmp\main.c</Name><Name>C:\avr\irmp\irmp.c</Name></Files></ProjectFiles><IOView><usergroups/><sort sorted="0" column="0" ordername="1" orderaddress="1" ordergroup="1"/></IOView><Files><File00000><FileId>00000</FileId><FileName>main.c</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>irmp.c</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>irmp.h</FileName><Status>1</Status></File00002><File00003><FileId>00003</FileId><FileName>irmpconfig.h</FileName><Status>1</Status></File00003><File00004><FileId>00004</FileId><FileName>irmpsystem.h</FileName><Status>1</Status></File00004><File00005><FileId>00005</FileId><FileName>irmpprotocols.h</FileName><Status>1</Status></File00005></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>\r
+<AVRStudio><MANAGEMENT><ProjectName>irmp</ProjectName><Created>07-Jan-2010 20:23:49</Created><LastEdit>26-Oct-2012 10:21:09</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>07-Jan-2010 20:23:49</Created><Version>4</Version><Build>4, 18, 0, 670</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\irmp.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>C:\avr\irmp\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>AVR Simulator</CURRENT_TARGET><CURRENT_PART>ATmega88.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>main.c</SOURCEFILE><SOURCEFILE>irmp.c</SOURCEFILE><HEADERFILE>irmp.h</HEADERFILE><HEADERFILE>irmpconfig.h</HEADERFILE><HEADERFILE>irmpprotocols.h</HEADERFILE><HEADERFILE>irmpsystem.h</HEADERFILE><OTHERFILE>default\irmp.lss</OTHERFILE><OTHERFILE>default\irmp.map</OTHERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega88</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>irmp.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>0</ISDIRTY><OPTIONS><OPTION><FILE>irmp.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>main.c</FILE><OPTIONLIST></OPTIONLIST></OPTION></OPTIONS><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -std=gnu99                                                                           -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\WinAVR\avr-gcc-4.7.2\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\WinAVR\avr-gcc-4.7.2\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><IOView><usergroups/><sort sorted="0" column="0" ordername="1" orderaddress="1" ordergroup="1"/></IOView><Files><File00000><FileId>00000</FileId><FileName>main.c</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>irmp.c</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>irmp.h</FileName><Status>1</Status></File00002><File00003><FileId>00003</FileId><FileName>irmpconfig.h</FileName><Status>1</Status></File00003><File00004><FileId>00004</FileId><FileName>irmpsystem.h</FileName><Status>1</Status></File00004><File00005><FileId>00005</FileId><FileName>irmpprotocols.h</FileName><Status>1</Status></File00005></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>\r
diff --git a/irmp.c b/irmp.c
index 6f2f99470085681f7edcb1b335409de4d9cc9526..a921aac4a8e9af949085ce5972333e179968a1f1 100644 (file)
--- a/irmp.c
+++ b/irmp.c
@@ -3,7 +3,7 @@
  *\r
  * Copyright (c) 2009-2012 Frank Meyer - frank(at)fli4l.de\r
  *\r
- * $Id: irmp.c,v 1.128 2012/10/05 07:58:39 fm Exp $\r
+ * $Id: irmp.c,v 1.129 2012/10/26 08:09:37 fm Exp $\r
  *\r
  * ATMEGA88 @ 8 MHz\r
  *\r
@@ -1443,7 +1443,7 @@ irmp_get_data (IRMP_DATA * irmp_data_p)
                 else\r
                 {\r
                     ANALYZE_PRINTF ("CRC error in LEGO protocol\n");\r
-                    rtc = TRUE;\r
+                    // rtc = TRUE;                              // don't accept codes with CRC errors\r
                 }\r
                 break;\r
             }\r
index de6e3ff73d5746e32b65db11b87cff83c1e5fc6a..08fdc4950919521bd5a594f1382c90e8598d2921 100644 (file)
@@ -5,7 +5,7 @@
  *\r
  * Copyright (c) 2009-2012 Frank Meyer - frank(at)fli4l.de\r
  *\r
- * $Id: irmpconfig.h,v 1.92 2012/07/11 13:14:08 fm Exp $\r
+ * $Id: irmpconfig.h,v 1.94 2012/10/26 08:12:17 fm Exp $\r
  *\r
  * ATMEGA88 @ 8 MHz\r
  *\r
index 08da7f8f4a4744bd25a8a4e1d7aaf5482d158486..f596a9b23b1fcd0a38a8ba47caac5522ade011bb 100644 (file)
--- a/irsnd.aps
+++ b/irsnd.aps
@@ -1 +1 @@
-<AVRStudio><MANAGEMENT><ProjectName>irsnd</ProjectName><Created>07-Jan-2010 20:23:49</Created><LastEdit>22-May-2012 17:10:20</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>07-Jan-2010 20:23:49</Created><Version>4</Version><Build>4, 18, 0, 670</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\irsnd.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>C:\avr\irmp\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>AVR Simulator</CURRENT_TARGET><CURRENT_PART>ATmega88.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>irsndmain.c</SOURCEFILE><SOURCEFILE>irsnd.c</SOURCEFILE><HEADERFILE>irsnd.h</HEADERFILE><HEADERFILE>irsndconfig.h</HEADERFILE><HEADERFILE>irmpprotocols.h</HEADERFILE><HEADERFILE>irmpsystem.h</HEADERFILE><OTHERFILE>default\irsnd.lss</OTHERFILE><OTHERFILE>default\irsnd.map</OTHERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega88</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>irsnd.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>1</ISDIRTY><OPTIONS><OPTION><FILE>irsnd.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>irsndmain.c</FILE><OPTIONLIST></OPTIONLIST></OPTION></OPTIONS><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -std=gnu99                     -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\Program Files\WinAVR-20100110\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\Program Files\WinAVR-20100110\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><ProjectFiles><Files><Name>C:\avr\irmp\irsnd.h</Name><Name>C:\avr\irmp\irsndconfig.h</Name><Name>C:\avr\irmp\irmpprotocols.h</Name><Name>C:\avr\irmp\irmpsystem.h</Name><Name>C:\avr\irmp\irsndmain.c</Name><Name>C:\avr\irmp\irsnd.c</Name></Files></ProjectFiles><IOView><usergroups/><sort sorted="0" column="0" ordername="1" orderaddress="1" ordergroup="1"/></IOView><Files><File00000><FileId>00000</FileId><FileName>irsndmain.c</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>irsnd.c</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>irsnd.h</FileName><Status>1</Status></File00002><File00003><FileId>00003</FileId><FileName>irsndconfig.h</FileName><Status>1</Status></File00003><File00004><FileId>00004</FileId><FileName>irmpprotocols.h</FileName><Status>1</Status></File00004><File00005><FileId>00005</FileId><FileName>irmpsystem.h</FileName><Status>1</Status></File00005></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>\r
+<AVRStudio><MANAGEMENT><ProjectName>irsnd</ProjectName><Created>07-Jan-2010 20:23:49</Created><LastEdit>26-Oct-2012 10:20:26</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>07-Jan-2010 20:23:49</Created><Version>4</Version><Build>4, 18, 0, 670</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\irsnd.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>C:\avr\irmp\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>AVR Simulator</CURRENT_TARGET><CURRENT_PART>ATmega88.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>irsndmain.c</SOURCEFILE><SOURCEFILE>irsnd.c</SOURCEFILE><HEADERFILE>irsnd.h</HEADERFILE><HEADERFILE>irsndconfig.h</HEADERFILE><HEADERFILE>irmpprotocols.h</HEADERFILE><HEADERFILE>irmpsystem.h</HEADERFILE><OTHERFILE>default\irsnd.lss</OTHERFILE><OTHERFILE>default\irsnd.map</OTHERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega88</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>irsnd.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>1</ISDIRTY><OPTIONS><OPTION><FILE>irsnd.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>irsndmain.c</FILE><OPTIONLIST></OPTIONLIST></OPTION></OPTIONS><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -std=gnu99                     -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\WinAVR\avr-gcc-4.7.2\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\WinAVR\avr-gcc-4.7.2\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><IOView><usergroups/><sort sorted="0" column="0" ordername="0" orderaddress="0" ordergroup="0"/></IOView><Files><File00000><FileId>00000</FileId><FileName>irsndmain.c</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>irsnd.c</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>irsnd.h</FileName><Status>1</Status></File00002><File00003><FileId>00003</FileId><FileName>irsndconfig.h</FileName><Status>1</Status></File00003><File00004><FileId>00004</FileId><FileName>irmpprotocols.h</FileName><Status>1</Status></File00004><File00005><FileId>00005</FileId><FileName>irmpsystem.h</FileName><Status>1</Status></File00005></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>\r
diff --git a/irsnd.c b/irsnd.c
index ad14dd85c450c85557561ba38e9fb8660f08c62d..30dd5af91c97b046336b619379adb11271bf46dc 100644 (file)
--- a/irsnd.c
+++ b/irsnd.c
@@ -13,7 +13,7 @@
  * ATmega164, ATmega324, ATmega644,  ATmega644P, ATmega1284\r
  * ATmega88,  ATmega88P, ATmega168,  ATmega168P, ATmega328P\r
  *\r
- * $Id: irsnd.c,v 1.60 2012/10/05 07:58:39 fm Exp $\r
+ * $Id: irsnd.c,v 1.62 2012/10/26 08:20:30 fm Exp $\r
  *\r
  * This program is free software; you can redistribute it and/or modify\r
  * it under the terms of the GNU General Public License as published by\r
  */\r
 #if defined (__AVR_ATtiny84__)                                      // ATtiny84 uses OC0A = PB2 or OC0B = PA7\r
 #  if IRSND_OCx == IRSND_OC0A                                       // OC0A\r
-#    define IRSND_PORT                              PORTB           // port B\r
-#    define IRSND_DDR                               DDRB            // ddr B\r
-#    define IRSND_BIT                               2               // OC0A\r
+#    define IRSND_PORT_LETTER                       B\r
+#    define IRSND_BIT_NUMBER                        2\r
 #  elif IRSND_OCx == IRSND_OC0B                                     // OC0B\r
-#    define IRSND_PORT                              PORTA           // port A\r
-#    define IRSND_DDR                               DDRA            // ddr A\r
-#    define IRSND_BIT                               7               // OC0B\r
+#    define IRSND_PORT_LETTER                       A\r
+#    define IRSND_BIT_NUMBER                        7\r
 #  else\r
 #    error Wrong value for IRSND_OCx, choose IRSND_OC0A or IRSND_OC0B in irsndconfig.h\r
 #  endif // IRSND_OCx\r
 #elif defined (__AVR_ATtiny45__) || defined (__AVR_ATtiny85__)      // ATtiny45/85 uses OC0A = PB0 or OC0B = PB1\r
 #  if IRSND_OCx == IRSND_OC0A                                       // OC0A\r
-#    define IRSND_PORT                              PORTB           // port B\r
-#    define IRSND_DDR                               DDRB            // ddr B\r
-#    define IRSND_BIT                               0               // OC0A\r
+#    define IRSND_PORT_LETTER                       B\r
+#    define IRSND_BIT_NUMBER                        0\r
 #  elif IRSND_OCx == IRSND_OC0B                                     // OC0B\r
-#    define IRSND_PORT                              PORTB           // port B\r
-#    define IRSND_DDR                               DDRB            // ddr B\r
-#    define IRSND_BIT                               1               // OC0B\r
+#    define IRSND_PORT_LETTER                       B\r
+#    define IRSND_BIT_NUMBER                        1\r
 #  else\r
 #    error Wrong value for IRSND_OCx, choose IRSND_OC0A or IRSND_OC0B in irsndconfig.h\r
 #  endif // IRSND_OCx\r
 #elif defined (__AVR_ATtiny87__) || defined (__AVR_ATtiny167__)     // ATtiny87/167 uses OC0A = PA2\r
 #  if IRSND_OCx == IRSND_OC0A                                       // OC0A\r
-#    define IRSND_PORT                              PORTA           // port A\r
-#    define IRSND_DDR                               DDRA            // ddr A\r
-#    define IRSND_BIT                               2               // OC0A\r
+#    define IRSND_PORT_LETTER                       A\r
+#    define IRSND_BIT_NUMBER                        2\r
 #  else\r
 #    error Wrong value for IRSND_OCx, choose IRSND_OC0A in irsndconfig.h\r
 #  endif // IRSND_OCx\r
 #elif defined (__AVR_ATmega8__)                                     // ATmega8 uses only OC2 = PB3\r
 #  if IRSND_OCx == IRSND_OC2                                        // OC0A\r
-#    define IRSND_PORT                              PORTB           // port B\r
-#    define IRSND_DDR                               DDRB            // ddr B\r
-#    define IRSND_BIT                               3               // OC0A\r
+#    define IRSND_PORT_LETTER                       B\r
+#    define IRSND_BIT_NUMBER                        3\r
 #  else\r
 #    error Wrong value for IRSND_OCx, choose IRSND_OC2 in irsndconfig.h\r
 #  endif // IRSND_OCx\r
 #elif defined (__AVR_ATmega16__) || defined (__AVR_ATmega32__)      // ATmega16|32 uses OC2 = PD7\r
 #  if IRSND_OCx == IRSND_OC2                                        // OC2\r
-#    define IRSND_PORT                              PORTD           // port D\r
-#    define IRSND_DDR                               DDRD            // ddr D\r
-#    define IRSND_BIT                               7               // OC2\r
+#    define IRSND_PORT_LETTER                       D\r
+#    define IRSND_BIT_NUMBER                        7\r
 #  else\r
 #    error Wrong value for IRSND_OCx, choose IRSND_OC2 in irsndconfig.h\r
 #  endif // IRSND_OCx\r
 #elif defined (__AVR_ATmega162__)                                   // ATmega162 uses OC2 = PB1 or OC0 = PB0\r
 #  if IRSND_OCx == IRSND_OC2                                        // OC2\r
-#    define IRSND_PORT                              PORTB           // port B\r
-#    define IRSND_DDR                               DDRB            // ddr B\r
-#    define IRSND_BIT                               1               // OC2\r
+#    define IRSND_PORT_LETTER                       B\r
+#    define IRSND_BIT_NUMBER                        1\r
 #  elif IRSND_OCx == IRSND_OC0                                      // OC0\r
-#    define IRSND_PORT                              PORTB           // port B\r
-#    define IRSND_DDR                               DDRB            // ddr B\r
-#    define IRSND_BIT                               0               // OC0\r
+#    define IRSND_PORT_LETTER                       B\r
+#    define IRSND_BIT_NUMBER                        0\r
 #  else\r
 #    error Wrong value for IRSND_OCx, choose IRSND_OC2 or IRSND_OC0 in irsndconfig.h\r
 #  endif // IRSND_OCx\r
    || defined (__AVR_ATmega1284__)  \\r
    || defined (__AVR_ATmega1284P__)                                 // ATmega164|324|644|644P|1284 uses OC2A = PD7 or OC2B = PD6 or OC0A = PB3 or OC0B = PB4\r
 #  if IRSND_OCx == IRSND_OC2A                                       // OC2A\r
-#    define IRSND_PORT                              PORTD           // port D\r
-#    define IRSND_DDR                               DDRD            // ddr D\r
-#    define IRSND_BIT                               7               // OC2A\r
+#    define IRSND_PORT_LETTER                       D\r
+#    define IRSND_BIT_NUMBER                        7\r
 #  elif IRSND_OCx == IRSND_OC2B                                     // OC2B\r
-#    define IRSND_PORT                              PORTD           // port D\r
-#    define IRSND_DDR                               DDRD            // ddr D\r
-#    define IRSND_BIT                               6               // OC2B\r
+#    define IRSND_PORT_LETTER                       D\r
+#    define IRSND_BIT_NUMBER                        6\r
 #  elif IRSND_OCx == IRSND_OC0A                                     // OC0A\r
-#    define IRSND_PORT                              PORTB           // port B\r
-#    define IRSND_DDR                               DDRB            // ddr B\r
-#    define IRSND_BIT                               3               // OC0A\r
+#    define IRSND_PORT_LETTER                       B\r
+#    define IRSND_BIT_NUMBER                        3\r
 #  elif IRSND_OCx == IRSND_OC0B                                     // OC0B\r
-#    define IRSND_PORT                              PORTB           // port B\r
-#    define IRSND_DDR                               DDRB            // ddr B\r
-#    define IRSND_BIT                               4               // OC0B\r
+#    define IRSND_PORT_LETTER                       B\r
+#    define IRSND_BIT_NUMBER                        4\r
 #  else\r
 #    error Wrong value for IRSND_OCx, choose IRSND_OC2A, IRSND_OC2B, IRSND_OC0A, or IRSND_OC0B in irsndconfig.h\r
 #  endif // IRSND_OCx\r
    || defined (__AVR_ATmega168P__)  \\r
    || defined (__AVR_ATmega328P__)                                  // ATmega48|88|168|168|328 uses OC2A = PB3 or OC2B = PD3 or OC0A = PD6 or OC0B = PD5\r
 #  if IRSND_OCx == IRSND_OC2A                                       // OC2A\r
-#    define IRSND_PORT                              PORTB           // port B\r
-#    define IRSND_DDR                               DDRB            // ddr B\r
-#    define IRSND_BIT                               3               // OC2A\r
+#    define IRSND_PORT_LETTER                       B\r
+#    define IRSND_BIT_NUMBER                        3\r
 #  elif IRSND_OCx == IRSND_OC2B                                     // OC2B\r
-#    define IRSND_PORT                              PORTD           // port D\r
-#    define IRSND_DDR                               DDRD            // ddr D\r
-#    define IRSND_BIT                               3               // OC2B\r
+#    define IRSND_PORT_LETTER                       D\r
+#    define IRSND_BIT_NUMBER                        3\r
 #  elif IRSND_OCx == IRSND_OC0A                                     // OC0A\r
-#    define IRSND_PORT                              PORTB           // port B\r
-#    define IRSND_DDR                               DDRB            // ddr B\r
-#    define IRSND_BIT                               6               // OC0A\r
+#    define IRSND_PORT_LETTER                       D\r
+#    define IRSND_BIT_NUMBER                        6\r
 #  elif IRSND_OCx == IRSND_OC0B                                     // OC0B\r
-#    define IRSND_PORT                              PORTD           // port D\r
-#    define IRSND_DDR                               DDRD            // ddr D\r
-#    define IRSND_BIT                               5               // OC0B\r
+#    define IRSND_PORT_LETTER                       D\r
+#    define IRSND_BIT_NUMBER                        5\r
 #  else\r
 #    error Wrong value for IRSND_OCx, choose IRSND_OC2A, IRSND_OC2B, IRSND_OC0A, or IRSND_OC0B in irsndconfig.h\r
 #  endif // IRSND_OCx\r
-#elif defined (__AVR_ATmega8515__) \r
+#elif defined (__AVR_ATmega8515__)                                  // ATmega8515 uses OC0 = PB0 or OC1A = PD5 or OC1B = PE2\r
 #  if IRSND_OCx == IRSND_OC0   \r
-#    define IRSND_PORT                              PORTB           // port B\r
-#    define IRSND_DDR                               DDRB            // ddr B\r
-#    define IRSND_BIT                               0               // OC0\r
+#    define IRSND_PORT_LETTER                       B\r
+#    define IRSND_BIT_NUMBER                        0\r
 #  elif IRSND_OCx == IRSND_OC1A \r
-#    define IRSND_PORT                              PORTD           // port D\r
-#    define IRSND_DDR                               DDRD            // ddr D\r
-#    define IRSND_BIT                               5               // OC1A\r
+#    define IRSND_PORT_LETTER                       D\r
+#    define IRSND_BIT_NUMBER                        5\r
 #  elif IRSND_OCx == IRSND_OC1B \r
-#    define IRSND_PORT                              PORTE           // port E\r
-#    define IRSND_DDR                               DDRE            // ddr E\r
-#    define IRSND_BIT                               2               // OC1E\r
+#    define IRSND_PORT_LETTER                       E\r
+#    define IRSND_BIT_NUMBER                        2\r
 #  else\r
 #    error Wrong value for IRSND_OCx, choose IRSND_OC0, IRSND_OC1A, or IRSND_OC1B in irsndconfig.h\r
 #  endif // IRSND_OCx\r
 #  endif // unix, WIN32\r
 #endif // __AVR...\r
 \r
+#if defined(ATMEL_AVR)\r
+#  define _CONCAT(a,b)                              a##b\r
+#  define CONCAT(a,b)                               _CONCAT(a,b)\r
+#  define IRSND_PORT                                CONCAT(PORT, IRSND_PORT_LETTER)\r
+#  define IRSND_DDR                                 CONCAT(DDR, IRSND_PORT_LETTER)\r
+#  define IRSND_BIT                                 IRSND_BIT_NUMBER\r
+#endif\r
+\r
 #if IRSND_SUPPORT_NIKON_PROTOCOL == 1\r
     typedef uint16_t    IRSND_PAUSE_LEN;\r
 #else\r
@@ -2290,6 +2278,7 @@ main (int argc, char ** argv)
 \r
         putchar ('\n');\r
 \r
+#if 1 // enable here to send twice\r
         (void) irsnd_send_data (&irmp_data, TRUE);\r
 \r
         while (irsnd_busy)\r
@@ -2298,6 +2287,7 @@ main (int argc, char ** argv)
         }\r
 \r
         putchar ('\n');\r
+#endif\r
     }\r
     else\r
     {\r
index 46e33be48708becfe58a9bd2f8ef29d7d37ec74e..03e16557cb52d5d791b86ab4bae28e3896110c60 100644 (file)
@@ -5,7 +5,7 @@
  *\r
  * Copyright (c) 2010-2011 Frank Meyer - frank(at)fli4l.de\r
  *\r
- * $Id: irsndconfig.h,v 1.41 2012/10/05 07:58:39 fm Exp $\r
+ * $Id: irsndconfig.h,v 1.43 2012/10/26 08:12:17 fm Exp $\r
  *\r
  * ATMEGA88 @ 8 MHz\r
  *\r
@@ -48,7 +48,7 @@
 #define IRSND_SUPPORT_DENON_PROTOCOL            1       // DENON, Sharp         >= 10000                 ~200 bytes\r
 \r
 // more protocols, enable here!                 Enable  Remarks                 F_INTERRUPTS            Program Space\r
-#define IRSND_SUPPORT_RC5_PROTOCOL              1       // RC5                  >= 10000                 ~150 bytes\r
+#define IRSND_SUPPORT_RC5_PROTOCOL              0       // RC5                  >= 10000                 ~150 bytes\r
 #define IRSND_SUPPORT_RC6_PROTOCOL              0       // RC6                  >= 10000                 ~250 bytes\r
 #define IRSND_SUPPORT_RC6A_PROTOCOL             0       // RC6A                 >= 10000                 ~250 bytes\r
 #define IRSND_SUPPORT_JVC_PROTOCOL              0       // JVC                  >= 10000                 ~150 bytes\r