]> cloudbase.mooo.com Git - irmp.git/blobdiff - main.c
Version 2.9.5: added TECHNICS protocol
[irmp.git] / main.c
diff --git a/main.c b/main.c
index 538e2fab5e31db2c61b4cc4ce2a6eaf1e3e96a48..1c3050b7386d3528875e36a6cb8bbf26c2dea40b 100644 (file)
--- a/main.c
+++ b/main.c
@@ -1,9 +1,9 @@
 /*---------------------------------------------------------------------------------------------------------------------------------------------------\r
  * main.c - demo main module to test irmp decoder\r
  *\r
- * Copyright (c) 2009-2014 Frank Meyer - frank(at)fli4l.de\r
+ * Copyright (c) 2009-2015 Frank Meyer - frank(at)fli4l.de\r
  *\r
- * $Id: main.c,v 1.20 2014/09/15 10:27:38 fm Exp $\r
+ * $Id: main.c,v 1.27 2015/02/27 10:19:20 fm Exp $\r
  *\r
  * This demo module is runnable on AVRs and LM4F120 Launchpad (ARM Cortex M4)\r
  *\r
@@ -20,7 +20,7 @@
 #include "irmp.h"\r
 \r
 #ifndef F_CPU\r
-#error F_CPU unkown\r
+#error F_CPU unknown\r
 #endif\r
 \r
 /*---------------------------------------------------------------------------------------------------------------------------------------------------\r
@@ -51,7 +51,7 @@
 #define UART0_TXEN_BIT_VALUE                    (1<<TXEN0)\r
 #define UART0_UDR                               UDR0\r
 #define UART0_U2X                               U2X0\r
-        \r
+\r
 #else\r
 \r
 #define UART0_UBRRH                             UBRRH\r
@@ -122,30 +122,14 @@ uart_puts_P (PGM_P s)
     }\r
 }\r
 \r
-static uint8_t\r
-itox (uint8_t val)\r
+static char *\r
+itoh (char * buf, uint8_t digits, uint16_t number)\r
 {\r
-    uint8_t rtc;\r
-\r
-    val &= 0x0F;\r
-\r
-    if (val <= 9)\r
-    {\r
-        rtc = val + '0';\r
-    }\r
-    else\r
+    for (buf[digits] = 0; digits--; number >>= 4)\r
     {\r
-        rtc = val - 10 + 'A';\r
+        buf[digits] = "0123456789ABCDEF"[number & 0x0F];\r
     }\r
-    return (rtc);\r
-}\r
-\r
-static void\r
-itoxx (char * xx, unsigned char i)\r
-{\r
-    *xx++ = itox (i >> 4);\r
-    *xx++ = itox (i & 0x0F);\r
-    *xx = '\0';\r
+    return buf;\r
 }\r
 \r
 static void\r
@@ -202,28 +186,24 @@ main (void)
         if (irmp_get_data (&irmp_data))\r
         {\r
             uart_puts_P (PSTR("protocol: 0x"));\r
-            itoxx (buf, irmp_data.protocol);\r
+            itoh (buf, 2, irmp_data.protocol);\r
             uart_puts (buf);\r
 \r
 #if IRMP_PROTOCOL_NAMES == 1\r
             uart_puts_P (PSTR("   "));\r
-            uart_puts_P (irmp_protocol_names[irmp_data.protocol]);\r
+            uart_puts_P (pgm_read_word (&(irmp_protocol_names[irmp_data.protocol])));\r
 #endif\r
 \r
             uart_puts_P (PSTR("   address: 0x"));\r
-            itoxx (buf, irmp_data.address >> 8);\r
-            uart_puts (buf);\r
-            itoxx (buf, irmp_data.address & 0xFF);\r
+            itoh (buf, 4, irmp_data.address);\r
             uart_puts (buf);\r
 \r
             uart_puts_P (PSTR("   command: 0x"));\r
-            itoxx (buf, irmp_data.command >> 8);\r
-            uart_puts (buf);\r
-            itoxx (buf, irmp_data.command & 0xFF);\r
+            itoh (buf, 4, irmp_data.command);\r
             uart_puts (buf);\r
 \r
             uart_puts_P (PSTR("   flags: 0x"));\r
-            itoxx (buf, irmp_data.flags);\r
+            itoh (buf, 2, irmp_data.flags);\r
             uart_puts (buf);\r
 \r
             uart_puts_P (PSTR("\r\n"));\r