From d870a5cc03b084e0cd51ef58939e712300632c0a Mon Sep 17 00:00:00 2001 From: sergeyyarkov Date: Sat, 29 Oct 2022 23:43:27 +0300 Subject: [PATCH] fix --- firmware/main.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/firmware/main.c b/firmware/main.c index 00ce4f0..3a3d7c6 100644 --- a/firmware/main.c +++ b/firmware/main.c @@ -12,22 +12,9 @@ void led_toggle(void); void hello_world(void); ISR(USART1_RXC_vect) { - char c; - c = USART1.RXDATAL; - - if (buff_idx > BUFFER_SIZE) { - buff_idx = 0; - } - - if (c != ' ' && c != '\n' && c != '\r') { - buffer[buff_idx++] = c; - } - - if (c == '\n') { - command_process(buffer); - buff_idx = 0; - memset(buffer, 0, strlen(buffer)); - } + if (buff_idx > BUFFER_SIZE) buff_idx = 0; + buffer[buff_idx] = USART1.RXDATAL; + buff_idx++; } void MCU_Init_Ports(void) { @@ -45,6 +32,13 @@ int main(void) { command_define(command_list, "list"); while (1) { + if (buff_idx >= 1) { + if (buffer[buff_idx - 1] == '\n') { + buffer[buff_idx - 1] = '\0'; + command_process(buffer); + buff_idx = 0; + } + } } }