/*---------------------------------------------------------------------------------------------------------------------------------------------------\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
#include "irmp.h"\r
\r
#ifndef F_CPU\r
-#error F_CPU unkown\r
+#error F_CPU unknown\r
#endif\r
\r
/*---------------------------------------------------------------------------------------------------------------------------------------------------\r
#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
}\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
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