diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-11-05 00:42:51 -0500 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-11-05 00:42:51 -0500 |
| commit | fc84eed99d54618377ec7b4c5bbd8f803814980c (patch) | |
| tree | 0f0849c6a0e3a8a2e25543d511acf47dcd8ae2c1 /project/Core | |
| parent | d5dac33672ae1e940b3fda4ee4f4e940229d996f (diff) | |
| download | 340-repo-Sowgro-fc84eed99d54618377ec7b4c5bbd8f803814980c.tar.gz 340-repo-Sowgro-fc84eed99d54618377ec7b4c5bbd8f803814980c.tar.bz2 340-repo-Sowgro-fc84eed99d54618377ec7b4c5bbd8f803814980c.zip | |
Get mode and all og functions besides pause working
Diffstat (limited to '')
| -rw-r--r-- | project/Core/Inc/Project/local_control.h | 4 | ||||
| -rw-r--r-- | project/Core/Inc/Project/project.h | 6 | ||||
| -rw-r--r-- | project/Core/Inc/Project/remote_control.h | 4 | ||||
| -rw-r--r-- | project/Core/Src/Activties/activity10.c | 18 | ||||
| -rw-r--r-- | project/Core/Src/Project/local_control.c | 11 | ||||
| -rw-r--r-- | project/Core/Src/Project/project.c | 26 | ||||
| -rw-r--r-- | project/Core/Src/Project/remote_control.c | 14 |
7 files changed, 48 insertions, 35 deletions
diff --git a/project/Core/Inc/Project/local_control.h b/project/Core/Inc/Project/local_control.h index b691cde..a28271b 100644 --- a/project/Core/Inc/Project/local_control.h +++ b/project/Core/Inc/Project/local_control.h @@ -8,10 +8,8 @@ #ifndef INC_PROJECT_LOCAL_CONTROL_H_ #define INC_PROJECT_LOCAL_CONTROL_H_ -void local_control_start(); +void local_control_init(); void local_control_loop(); -void local_control_stop(); - #endif /* INC_PROJECT_LOCAL_CONTROL_H_ */ diff --git a/project/Core/Inc/Project/project.h b/project/Core/Inc/Project/project.h index 1d07abd..ed41f78 100644 --- a/project/Core/Inc/Project/project.h +++ b/project/Core/Inc/Project/project.h @@ -8,7 +8,13 @@ #ifndef INC_PROJECT_H_ #define INC_PROJECT_H_ +#define REMOTE_MODE (0) +#define LOCAL_MODE (1) + void project_run(); + uint8_t *project_get_state(); +uint8_t project_get_mode(); + #endif /* INC_PROJECT_H_ */ diff --git a/project/Core/Inc/Project/remote_control.h b/project/Core/Inc/Project/remote_control.h index 469e4ab..d3bd926 100644 --- a/project/Core/Inc/Project/remote_control.h +++ b/project/Core/Inc/Project/remote_control.h @@ -8,10 +8,8 @@ #ifndef INC_PROJECT_REMOTE_CONTROL_H_ #define INC_PROJECT_REMOTE_CONTROL_H_ -void remote_control_start(); +void remote_control_init(); void remote_control_loop(); -void remote_control_stop(); - #endif /* INC_PROJECT_REMOTE_CONTROL_H_ */ diff --git a/project/Core/Src/Activties/activity10.c b/project/Core/Src/Activties/activity10.c index 78261ff..792ada5 100644 --- a/project/Core/Src/Activties/activity10.c +++ b/project/Core/Src/Activties/activity10.c @@ -16,12 +16,12 @@ void activity10_run() { init_systick(); } -void SysTick_Handler() { - static int i = 0; - i++; - - if (!(i & 1023)) { - printf("%d\r\n", i>>10); - } - -} +//void SysTick_Handler() { +// static int i = 0; +// i++; +// +// if (!(i & 1023)) { +// printf("%d\r\n", i>>10); +// } +// +//} diff --git a/project/Core/Src/Project/local_control.c b/project/Core/Src/Project/local_control.c index 1ddcd2a..6b6f5e4 100644 --- a/project/Core/Src/Project/local_control.c +++ b/project/Core/Src/Project/local_control.c @@ -8,8 +8,9 @@ #include <stm32l4xx.h> #include <stdio.h> #include "GPIO.h" +#include "project.h" -void local_control_start() { +void local_control_init() { GPIO_Init(); NVIC_EnableIRQ(EXTI9_5_IRQn); } @@ -18,16 +19,14 @@ void local_control_loop() { } -void local_control_stop() { - NVIC_DisableIRQ(EXTI15_10_IRQn); -} - void EXTI9_5_IRQHandler() { if (~EXTI->PR1 & EXTI_PR1_PIF9) return; - EXTI->PR1 |= EXTI_PR1_PIF9; + if (project_get_mode() != LOCAL_MODE) + return; + int status = !(GPIOC->IDR & GPIO_PIN_9); printf("Other %i\r\n", status); } diff --git a/project/Core/Src/Project/project.c b/project/Core/Src/Project/project.c index be329fa..7188207 100644 --- a/project/Core/Src/Project/project.c +++ b/project/Core/Src/Project/project.c @@ -15,20 +15,22 @@ #include "local_control.h" #include "remote_control.h" #include "GPIO.h" - -#define LOCAL_MODE (1) -#define REMOTE_MODE (2) +#include "project.h" static uint8_t state = STOPPED_STATE; uint8_t *project_get_state() { return &state; } +static uint8_t mode = REMOTE_MODE; + +uint8_t project_get_mode() { + return mode; +} void project_run() { - int mode = LOCAL_MODE; - local_control_start(); -// remote_control_start(); + local_control_init(); + remote_control_init(); GPIO_Init(); NVIC_EnableIRQ(EXTI15_10_IRQn); @@ -41,8 +43,9 @@ void project_run() { local_control_loop(); break; } - if (state == PAUSED_STATE) + if (state == PAUSED_STATE) { pause_loop(); + } } } @@ -52,8 +55,13 @@ void EXTI15_10_IRQHandler() { EXTI->PR1 |= EXTI_PR1_PIF13; - int status = !(GPIOC->IDR & GPIO_PIN_13); - printf("%i\r\n", status); + mode = !mode; + switch (mode) { + case REMOTE_MODE: + puts("\r\n***REMOTE MODE ACTIVE***\r\n"); break; + case LOCAL_MODE: + puts("\r\n***MANUAL OVERRIDE MODE ACTIVE***\r\n"); break; + } } 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; } |
