]> cloudbase.mooo.com Git - irmp.git/commitdiff
Version 2.3.10: added ROOMBA protocol in IRSND
authorukw <ukw@aeb2e35e-bfc4-4214-b83c-9e8de998ed28>
Tue, 9 Apr 2013 14:17:52 +0000 (14:17 +0000)
committerukw <ukw@aeb2e35e-bfc4-4214-b83c-9e8de998ed28>
Tue, 9 Apr 2013 14:17:52 +0000 (14:17 +0000)
git-svn-id: svn://mikrocontroller.net/irmp@120 aeb2e35e-bfc4-4214-b83c-9e8de998ed28

README.txt
irsnd.c
irsndconfig.h

index 4f1ccdef9b633dc404982116d3678d565b69c04f..36bdfee7a77b8f7db214b12f890affe06fdd84b0 100644 (file)
@@ -2,7 +2,7 @@ IRMP - Infrared Multi Protocol Decoder
 --------------------------------------\r
 \r
 Version IRMP:  2.3.10 09.04.2013\r
-Version IRSND: 2.3.8  12.03.2013\r
+Version IRSND: 2.3.10 09.04.2013\r
 \r
 Dokumentation:\r
  \r
diff --git a/irsnd.c b/irsnd.c
index fd0112299e4375884b50909fa3cca7522f492fec..8002cb59ff4f761b923565b517c0b7728bbcd3d3 100644 (file)
--- a/irsnd.c
+++ b/irsnd.c
@@ -13,7 +13,7 @@
  * ATmega164, ATmega324, ATmega644,  ATmega644P, ATmega1284, ATmega1284P\r
  * ATmega88,  ATmega88P, ATmega168,  ATmega168P, ATmega328P\r
  *\r
- * $Id: irsnd.c,v 1.68 2013/03/12 12:49:59 fm Exp $\r
+ * $Id: irsnd.c,v 1.69 2013/04/09 14:19:11 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
 #define A1TVBOX_FRAME_REPEAT_PAUSE_LEN          (uint16_t)(F_INTERRUPTS * A1TVBOX_FRAME_REPEAT_PAUSE_TIME + 0.5)            // use uint16_t!\r
 #define A1TVBOX_FRAME_REPEAT_PAUSE_LEN          (uint16_t)(F_INTERRUPTS * A1TVBOX_FRAME_REPEAT_PAUSE_TIME + 0.5)            // use uint16_t!\r
 \r
+#define ROOMBA_START_BIT_PULSE_LEN              (uint8_t)(F_INTERRUPTS * ROOMBA_START_BIT_PULSE_TIME + 0.5)\r
+#define ROOMBA_START_BIT_PAUSE_LEN              (uint8_t)(F_INTERRUPTS * ROOMBA_START_BIT_PAUSE_TIME + 0.5)\r
+#define ROOMBA_1_PULSE_LEN                      (uint8_t)(F_INTERRUPTS * ROOMBA_1_PULSE_TIME + 0.5)\r
+#define ROOMBA_0_PULSE_LEN                      (uint8_t)(F_INTERRUPTS * ROOMBA_0_PULSE_TIME + 0.5)\r
+#define ROOMBA_1_PAUSE_LEN                      (uint8_t)(F_INTERRUPTS * ROOMBA_1_PAUSE_TIME + 0.5)\r
+#define ROOMBA_0_PAUSE_LEN                      (uint8_t)(F_INTERRUPTS * ROOMBA_0_PAUSE_TIME + 0.5)\r
+#define ROOMBA_FRAME_REPEAT_PAUSE_LEN           (uint16_t)(F_INTERRUPTS * ROOMBA_FRAME_REPEAT_PAUSE_TIME + 0.5)               // use uint16_t!\r
+\r
 static volatile uint8_t                         irsnd_busy = 0;\r
 static volatile uint8_t                         irsnd_protocol = 0;\r
 static volatile uint8_t                         irsnd_buffer[6] = {0};\r
@@ -1106,6 +1114,15 @@ irsnd_send_data (IRMP_DATA * irmp_data_p, uint8_t do_wait)
             break;\r
         }\r
 #endif\r
+#if IRSND_SUPPORT_ROOMBA_PROTOCOL == 1\r
+        case IRMP_ROOMBA_PROTOCOL:\r
+        {\r
+\r
+            irsnd_buffer[0] = (irmp_data_p->command & 0x7F) << 1;                                               // CCCCCCC.\r
+            irsnd_busy      = TRUE;\r
+            break;\r
+        }\r
+#endif\r
         default:\r
         {\r
             break;\r
@@ -1760,6 +1777,24 @@ irsnd_ISR (void)
                         irsnd_set_freq (IRSND_FREQ_38_KHZ);\r
                         break;\r
                     }\r
+#endif\r
+#if IRSND_SUPPORT_ROOMBA_PROTOCOL == 1\r
+                    case IRMP_ROOMBA_PROTOCOL:\r
+                    {\r
+                        startbit_pulse_len          = ROOMBA_START_BIT_PULSE_LEN;\r
+                        startbit_pause_len          = ROOMBA_START_BIT_PAUSE_LEN;\r
+                        pulse_1_len                 = ROOMBA_1_PULSE_LEN;\r
+                        pause_1_len                 = ROOMBA_1_PAUSE_LEN - 1;\r
+                        pulse_0_len                 = ROOMBA_0_PULSE_LEN;\r
+                        pause_0_len                 = ROOMBA_0_PAUSE_LEN - 1;\r
+                        has_stop_bit                = ROOMBA_STOP_BIT;\r
+                        complete_data_len           = ROOMBA_COMPLETE_DATA_LEN;\r
+                        n_auto_repetitions          = 1;                                            // 1 frame\r
+                        auto_repetition_pause_len   = 0;\r
+                        repeat_frame_pause_len      = ROOMBA_FRAME_REPEAT_PAUSE_LEN;\r
+                        irsnd_set_freq (IRSND_FREQ_38_KHZ);\r
+                        break;\r
+                    }\r
 #endif\r
                     default:\r
                     {\r
@@ -1831,6 +1866,9 @@ irsnd_ISR (void)
 #if IRSND_SUPPORT_LEGO_PROTOCOL == 1\r
                 case IRMP_LEGO_PROTOCOL:\r
 #endif\r
+#if IRSND_SUPPORT_ROOMBA_PROTOCOL == 1\r
+                case IRMP_ROOMBA_PROTOCOL:\r
+#endif\r
 \r
 #if IRSND_SUPPORT_SIRCS_PROTOCOL == 1  || IRSND_SUPPORT_NEC_PROTOCOL == 1 || IRSND_SUPPORT_NEC16_PROTOCOL == 1 || IRSND_SUPPORT_NEC42_PROTOCOL == 1 || \\r
     IRSND_SUPPORT_SAMSUNG_PROTOCOL == 1 || IRSND_SUPPORT_MATSUSHITA_PROTOCOL == 1 ||   \\r
index 3d278bc9f725ca7ea346b06f788751955fdb4f28..e5d07cc72733ed700d316f53e62f8acec2a61036 100644 (file)
@@ -5,7 +5,7 @@
  *\r
  * Copyright (c) 2010-2013 Frank Meyer - frank(at)fli4l.de\r
  *\r
- * $Id: irsndconfig.h,v 1.48 2013/03/12 12:49:59 fm Exp $\r
+ * $Id: irsndconfig.h,v 1.49 2013/04/09 14:19:11 fm Exp $\r
  *\r
  * ATMEGA88 @ 8 MHz\r
  *\r
@@ -70,6 +70,7 @@
 #define IRSND_SUPPORT_NETBOX_PROTOCOL           0       // Netbox keyboard      >= 10000                 DON'T CHANGE, NOT SUPPORTED YET!\r
 #define IRSND_SUPPORT_FDC_PROTOCOL              0       // FDC IR keyboard      >= 10000 (better 15000)  ~150 bytes\r
 #define IRSND_SUPPORT_RCCAR_PROTOCOL            0       // RC CAR               >= 10000 (better 15000)  ~150 bytes\r
+#define IRSND_SUPPORT_ROOMBA_PROTOCOL           0       // iRobot Roomba        >= 10000                 ~150 bytes\r
 #define IRSND_SUPPORT_RUWIDO_PROTOCOL           0       // RUWIDO, T-Home       >= 15000                 DON'T CHANGE, NOT SUPPORTED YET!\r
 #define IRSND_SUPPORT_A1TVBOX_PROTOCOL          0       // A1 TV BOX            >= 15000 (better 20000)  ~200 bytes\r
 #define IRSND_SUPPORT_LEGO_PROTOCOL             0       // LEGO Power RC        >= 20000                 ~150 bytes\r