From fc84eed99d54618377ec7b4c5bbd8f803814980c Mon Sep 17 00:00:00 2001 From: sowgro Date: Wed, 5 Nov 2025 00:42:51 -0500 Subject: Get mode and all og functions besides pause working --- project/Core/Src/Project/remote_control.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'project/Core/Src/Project/remote_control.c') diff --git a/project/Core/Src/Project/remote_control.c b/project/Core/Src/Project/remote_control.c index dd48cb7..2153a4a 100644 --- a/project/Core/Src/Project/remote_control.c +++ b/project/Core/Src/Project/remote_control.c @@ -15,7 +15,7 @@ static char buffer[80]; static char* cur = buffer; -void remote_control_start() { +void remote_control_init() { NVIC_EnableIRQ (USART2_IRQn); USART2->CR1 |= USART_CR1_RXNEIE; // 1 << 5 @@ -26,10 +26,6 @@ void remote_control_loop() { } -void remote_control_stop() { - -} - static void parse_input(char buffer[]) { uint8_t *state = project_get_state(); if (!strcmp(buffer, "HELP")) { @@ -58,15 +54,22 @@ static void parse_input(char buffer[]) { #include "systick.h" void USART2_IRQHandler() { int ch = USART_Read(USART2); + + if (project_get_mode() != REMOTE_MODE) + return; + putchar(ch); if (!ch) return; + if (ch == '\r') { + putchar('\n'); *cur = 0; parse_input(buffer); cur = buffer; return; } + if (ch == 0x08 || ch == 0x7F) { if (cur <= buffer) return; @@ -74,6 +77,7 @@ void USART2_IRQHandler() { printf("\b \b"); return; } + *cur++ = ch; } -- cgit v1.2.3