From e3bf9bb1e895d20b34d0756afebea5ce04a85257 Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 11 Feb 2016 17:47:49 +0100 Subject: [PATCH] Added bit mask and constant for SerialConfig parameter Permit use bit config avoiding test/compare all "hard-coded" values. example ```arduino if (section & CFG_HLP_MODBUS) { DebuglnF("\r\n===== Modbus"); DebugF("Speed : "); Debug(config.modbus.baud); switch (config.modbus.proto & UART_NB_BIT_MASK) { case UART_NB_BIT_5: Debug(" 5"); break; case UART_NB_BIT_6: Debug(" 6"); break; case UART_NB_BIT_7: Debug(" 7"); break; case UART_NB_BIT_8: Debug(" 8"); break; default : Debug(" ?"); break; } switch (config.modbus.proto & UART_PARITY_MASK) { case UART_PARITY_NONE: Debug("N"); break; case UART_PARITY_EVEN: Debug("E"); break; case UART_PARITY_ODD : Debug("O"); break; default : Debug("?"); break; } switch (config.modbus.proto & UART_NB_STOP_BIT_MASK) { case UART_NB_STOP_BIT_0: Debug("0"); break; case UART_NB_STOP_BIT_1: Debug("1"); break; case UART_NB_STOP_BIT_15: Debug("15"); break; case UART_NB_STOP_BIT_2 : Debug("2"); break; default : Debug("?"); break; } DebugF("\r\nSlave Addr : "); Debugln(config.modbus.slave); DebugF("Holding Reg : 0x"); Debugln2(config.modbus.hr_addr,HEX); DebugF("Enable Pin : "); Debugln(config.modbus.en_pin); } ``` --- cores/esp8266/uart.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/cores/esp8266/uart.h b/cores/esp8266/uart.h index 27b6f56b1..e5480f222 100644 --- a/cores/esp8266/uart.h +++ b/cores/esp8266/uart.h @@ -34,6 +34,49 @@ extern "C" { #define UART_NO -1 // Options for `config` argument of uart_init +#define UART_NB_BIT_MASK 0B00001100 +#define UART_NB_BIT_5 0B00000000 +#define UART_NB_BIT_6 0B00000100 +#define UART_NB_BIT_7 0B00001000 +#define UART_NB_BIT_8 0B00001100 + +#define UART_PARITY_MASK 0B00000011 +#define UART_PARITY_NONE 0B00000000 +#define UART_PARITY_EVEN 0B00000010 +#define UART_PARITY_ODD 0B00000011 + +#define UART_NB_STOP_BIT_MASK 0B00110000 +#define UART_NB_STOP_BIT_0 0B00000000 +#define UART_NB_STOP_BIT_1 0B00010000 +#define UART_NB_STOP_BIT_15 0B00100000 +#define UART_NB_STOP_BIT_2 0B00110000 + +#define UART_5N1 ( UART_NB_BIT_5 | UART_PARITY_NONE | UART_NB_STOP_BIT_1 ) +#define UART_6N1 ( UART_NB_BIT_6 | UART_PARITY_NONE | UART_NB_STOP_BIT_1 ) +#define UART_7N1 ( UART_NB_BIT_7 | UART_PARITY_NONE | UART_NB_STOP_BIT_1 ) +#define UART_8N1 ( UART_NB_BIT_8 | UART_PARITY_NONE | UART_NB_STOP_BIT_1 ) +#define UART_5N2 ( UART_NB_BIT_5 | UART_PARITY_NONE | UART_NB_STOP_BIT_2 ) +#define UART_6N2 ( UART_NB_BIT_6 | UART_PARITY_NONE | UART_NB_STOP_BIT_2 ) +#define UART_7N2 ( UART_NB_BIT_7 | UART_PARITY_NONE | UART_NB_STOP_BIT_2 ) +#define UART_8N2 ( UART_NB_BIT_8 | UART_PARITY_NONE | UART_NB_STOP_BIT_2 ) +#define UART_5E1 ( UART_NB_BIT_5 | UART_PARITY_EVEN | UART_NB_STOP_BIT_1 ) +#define UART_6E1 ( UART_NB_BIT_6 | UART_PARITY_EVEN | UART_NB_STOP_BIT_1 ) +#define UART_7E1 ( UART_NB_BIT_7 | UART_PARITY_EVEN | UART_NB_STOP_BIT_1 ) +#define UART_8E1 ( UART_NB_BIT_8 | UART_PARITY_EVEN | UART_NB_STOP_BIT_1 ) +#define UART_5E2 ( UART_NB_BIT_5 | UART_PARITY_EVEN | UART_NB_STOP_BIT_2 ) +#define UART_6E2 ( UART_NB_BIT_6 | UART_PARITY_EVEN | UART_NB_STOP_BIT_2 ) +#define UART_7E2 ( UART_NB_BIT_7 | UART_PARITY_EVEN | UART_NB_STOP_BIT_2 ) +#define UART_8E2 ( UART_NB_BIT_8 | UART_PARITY_EVEN | UART_NB_STOP_BIT_2 ) +#define UART_5O1 ( UART_NB_BIT_5 | UART_PARITY_ODD | UART_NB_STOP_BIT_1 ) +#define UART_6O1 ( UART_NB_BIT_6 | UART_PARITY_ODD | UART_NB_STOP_BIT_1 ) +#define UART_7O1 ( UART_NB_BIT_7 | UART_PARITY_ODD | UART_NB_STOP_BIT_1 ) +#define UART_8O1 ( UART_NB_BIT_8 | UART_PARITY_ODD | UART_NB_STOP_BIT_1 ) +#define UART_5O2 ( UART_NB_BIT_5 | UART_PARITY_ODD | UART_NB_STOP_BIT_2 ) +#define UART_6O2 ( UART_NB_BIT_6 | UART_PARITY_ODD | UART_NB_STOP_BIT_2 ) +#define UART_7O2 ( UART_NB_BIT_7 | UART_PARITY_ODD | UART_NB_STOP_BIT_2 ) +#define UART_8O2 ( UART_NB_BIT_8 | UART_PARITY_ODD | UART_NB_STOP_BIT_2 ) + +/* #define UART_5N1 0x10 #define UART_6N1 0x14 #define UART_7N1 0x18 @@ -58,6 +101,7 @@ extern "C" { #define UART_6O2 0x37 #define UART_7O2 0x3b #define UART_8O2 0x3f +*/ // Options for `mode` argument of uart_init #define UART_FULL 0