From 622bf047f826d7531580f0b5ad455ee3ed9106b6 Mon Sep 17 00:00:00 2001 From: Leon Krieg Date: Mon, 23 Sep 2024 01:41:13 +0200 Subject: [PATCH] Reduce RXBUF size to match parser and space out log messages --- src/bus/usart.c | 5 +++-- src/common/parser.c | 28 +--------------------------- src/main.c | 3 +++ 3 files changed, 7 insertions(+), 29 deletions(-) diff --git a/src/bus/usart.c b/src/bus/usart.c index 9b7dd1e..6f579ee 100644 --- a/src/bus/usart.c +++ b/src/bus/usart.c @@ -5,8 +5,8 @@ #include #define USART_BAUDRATE 9600 -#define USART_RXBUF_SIZE 512 -#define USART_TXBUF_SIZE 512 +#define USART_RXBUF_SIZE 128 +#define USART_TXBUF_SIZE 128 #define USART_RXBUF_MASK (USART_RXBUF_SIZE - 1) #define USART_TXBUF_MASK (USART_TXBUF_SIZE - 1) @@ -41,6 +41,7 @@ char USART_Getc(void) } rxtail = (rxtail + 1) & USART_RXBUF_MASK; + return rxbuf[rxtail]; } diff --git a/src/common/parser.c b/src/common/parser.c index f2d75f4..f5b79e4 100644 --- a/src/common/parser.c +++ b/src/common/parser.c @@ -16,9 +16,6 @@ static char *tail = cmdbuf + CMD_MAX_LEN - 1; static char *head = cmdbuf; static bool ParseLine(cmd_t *out); -static void StartTimer(void); -static bool IsTimedOut(void); -static void StopTimer(void); bool CMD_Parse(char ch, cmd_t *out) { @@ -30,16 +27,10 @@ bool CMD_Parse(char ch, cmd_t *out) // means that after a command that is too long, the // next command will not be parsed properly. - if (head == cmdbuf) { - StartTimer(); - } - - if (IsTimedOut() || - (ch == '\n' || ch == '\r')) { + if (ch == '\n' || ch == '\r') { is_valid = ParseLine(out); tail = cmdbuf + CMD_MAX_LEN - 1; head = cmdbuf; - StopTimer(); return is_valid; } @@ -87,20 +78,3 @@ static bool ParseLine(cmd_t *out) return false; } - -static void StartTimer(void) -{ - TCNT0 = 0x00; - TCCR0 = BIT(CS00) | BIT(CS02); -} - -static bool IsTimedOut(void) -{ - return false; // TIFR & BIT(TOV0) -} - -static void StopTimer(void) -{ - TCNT0 = 0x00; - TIFR = BIT(TOV0); -} diff --git a/src/main.c b/src/main.c index 4a5bc56..9906871 100644 --- a/src/main.c +++ b/src/main.c @@ -6,6 +6,7 @@ #include +// TODO: Check parser and circular buffer for edge cases. // TODO: Implement command parser timeout for large input. // TODO: Config header for chip specifics like EEPROM size. // TODO: Check thermistor conversion results /w thermometer. @@ -174,6 +175,7 @@ static void SetTarget(float t, float td) { mem_block_t mem; + Print("\r\n"); Info("======================================="); Info("Setting temperature target to '%.2fC'.", t); Info("Setting dewpoint target to '%.2fC'.", td); @@ -201,6 +203,7 @@ static void GetSensorState(void) word raw; float t[6], rh[3], dp[3]; + Print("\r\n"); Info("Reading sensor values..."); I2C_SetChannel(AHT01);