diff options
| -rw-r--r-- | project/.settings/language.settings.xml | 4 | ||||
| -rw-r--r-- | project/Core/Inc/Project/local_control.h | 17 | ||||
| -rw-r--r-- | project/Core/Inc/Project/project.h | 2 | ||||
| -rw-r--r-- | project/Core/Inc/Project/remote_control.h | 17 | ||||
| -rw-r--r-- | project/Core/Src/Activties/activity9.c | 2 | ||||
| -rw-r--r-- | project/Core/Src/Devices/GPIO.c | 2 | ||||
| -rw-r--r-- | project/Core/Src/Homework/hw6.c | 8 | ||||
| -rw-r--r-- | project/Core/Src/Project/local_control.c | 16 | ||||
| -rw-r--r-- | project/Core/Src/Project/player_actions.c | 1 | ||||
| -rw-r--r-- | project/Core/Src/Project/project.c | 23 | ||||
| -rw-r--r-- | project/Core/Src/Project/remote_control.c | 24 | ||||
| -rw-r--r-- | project/Core/Src/main.c | 4 |
12 files changed, 95 insertions, 25 deletions
diff --git a/project/.settings/language.settings.xml b/project/.settings/language.settings.xml index ae082b2..974b8a7 100644 --- a/project/.settings/language.settings.xml +++ b/project/.settings/language.settings.xml @@ -5,7 +5,7 @@ <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> - <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="781097053452714720" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> + <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-905336628230113484" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> <language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.g++"/> </provider> @@ -16,7 +16,7 @@ <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> - <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="781097053452714720" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> + <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-905336628230113484" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> <language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.g++"/> </provider> diff --git a/project/Core/Inc/Project/local_control.h b/project/Core/Inc/Project/local_control.h new file mode 100644 index 0000000..b691cde --- /dev/null +++ b/project/Core/Inc/Project/local_control.h @@ -0,0 +1,17 @@ +/* + * local_control.h + * + * Created on: Nov 4, 2025 + * Author: sowgro + */ + +#ifndef INC_PROJECT_LOCAL_CONTROL_H_ +#define INC_PROJECT_LOCAL_CONTROL_H_ + +void local_control_start(); + +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 da3590c..1d07abd 100644 --- a/project/Core/Inc/Project/project.h +++ b/project/Core/Inc/Project/project.h @@ -9,6 +9,6 @@ #define INC_PROJECT_H_ void project_run(); -void handle_input(char buffer[], uint8_t *state); +uint8_t *project_get_state(); #endif /* INC_PROJECT_H_ */ diff --git a/project/Core/Inc/Project/remote_control.h b/project/Core/Inc/Project/remote_control.h new file mode 100644 index 0000000..469e4ab --- /dev/null +++ b/project/Core/Inc/Project/remote_control.h @@ -0,0 +1,17 @@ +/* + * remote_control.h + * + * Created on: Nov 4, 2025 + * Author: sowgro + */ + +#ifndef INC_PROJECT_REMOTE_CONTROL_H_ +#define INC_PROJECT_REMOTE_CONTROL_H_ + +void remote_control_start(); + +void remote_control_loop(); + +void remote_control_stop(); + +#endif /* INC_PROJECT_REMOTE_CONTROL_H_ */ diff --git a/project/Core/Src/Activties/activity9.c b/project/Core/Src/Activties/activity9.c index 0ca1e7b..eb8bfcd 100644 --- a/project/Core/Src/Activties/activity9.c +++ b/project/Core/Src/Activties/activity9.c @@ -7,7 +7,7 @@ #include "GPIO.h" #include <stdint.h> -#include "stm32l4xx.h" +#include <stm32l4xx.h> #include "LED.h" #include <stdio.h> diff --git a/project/Core/Src/Devices/GPIO.c b/project/Core/Src/Devices/GPIO.c index f3812fa..668abf6 100644 --- a/project/Core/Src/Devices/GPIO.c +++ b/project/Core/Src/Devices/GPIO.c @@ -44,7 +44,7 @@ void GPIO_Init(void) /* EXTI9_5_IRQn interrupt init*/ - // Note you will have to add EXTI9_15_IRQn Interrupt handler function as well + // Note you will have to add EXTI9_5_IRQn Interrupt handler function as well // This is the interrupt handler for the external buttons (S1) } diff --git a/project/Core/Src/Homework/hw6.c b/project/Core/Src/Homework/hw6.c index 4fea34b..a925d54 100644 --- a/project/Core/Src/Homework/hw6.c +++ b/project/Core/Src/Homework/hw6.c @@ -16,7 +16,7 @@ void hw6_run() { NVIC_EnableIRQ(USART2_IRQn); } -void USART2_IRQHandler() { - int ch = USART_Read(USART2); - putchar(ch); -} +//void USART2_IRQHandler() { +// int ch = USART_Read(USART2); +// putchar(ch); +//} diff --git a/project/Core/Src/Project/local_control.c b/project/Core/Src/Project/local_control.c index 236e555..1ddcd2a 100644 --- a/project/Core/Src/Project/local_control.c +++ b/project/Core/Src/Project/local_control.c @@ -5,9 +5,13 @@ * Author: sowgro */ +#include <stm32l4xx.h> +#include <stdio.h> +#include "GPIO.h" + void local_control_start() { GPIO_Init(); - NVIC_Enable_IRQ(XTI15_10_IRQn); + NVIC_EnableIRQ(EXTI9_5_IRQn); } void local_control_loop() { @@ -15,9 +19,15 @@ void local_control_loop() { } void local_control_stop() { - + NVIC_DisableIRQ(EXTI15_10_IRQn); } -void XTI15_10_IRQHandler() { +void EXTI9_5_IRQHandler() { + if (~EXTI->PR1 & EXTI_PR1_PIF9) + return; + + EXTI->PR1 |= EXTI_PR1_PIF9; + int status = !(GPIOC->IDR & GPIO_PIN_9); + printf("Other %i\r\n", status); } diff --git a/project/Core/Src/Project/player_actions.c b/project/Core/Src/Project/player_actions.c index 4ee2dfb..39b62df 100644 --- a/project/Core/Src/Project/player_actions.c +++ b/project/Core/Src/Project/player_actions.c @@ -6,6 +6,7 @@ */ #include <stdio.h> +#include <stm32l4xx.h> #include "player_actions.h" #include "song_info.h" #include "song.h" diff --git a/project/Core/Src/Project/project.c b/project/Core/Src/Project/project.c index a939879..be329fa 100644 --- a/project/Core/Src/Project/project.c +++ b/project/Core/Src/Project/project.c @@ -8,19 +8,30 @@ #include <string.h> #include <stdint.h> #include <stdio.h> +#include <stm32l4xx.h> #include "project.h" #include "player_actions.h" #include "hw4.h" -#include "player_actions.h" +#include "local_control.h" +#include "remote_control.h" +#include "GPIO.h" #define LOCAL_MODE (1) #define REMOTE_MODE (2) +static uint8_t state = STOPPED_STATE; + +uint8_t *project_get_state() { + return &state; +} + void project_run() { int mode = LOCAL_MODE; + local_control_start(); +// remote_control_start(); GPIO_Init(); - NVIC_EnableIRQ(EXTI9_5_IRQn); + NVIC_EnableIRQ(EXTI15_10_IRQn); for (;;) { switch (mode) { @@ -35,8 +46,14 @@ void project_run() { } } -void EXTI9_5_IRQHandler() { +void EXTI15_10_IRQHandler() { + if (~EXTI->PR1 & EXTI_PR1_PIF13) + return; + + EXTI->PR1 |= EXTI_PR1_PIF13; + int status = !(GPIOC->IDR & GPIO_PIN_13); + printf("%i\r\n", status); } diff --git a/project/Core/Src/Project/remote_control.c b/project/Core/Src/Project/remote_control.c index 905f966..dd48cb7 100644 --- a/project/Core/Src/Project/remote_control.c +++ b/project/Core/Src/Project/remote_control.c @@ -5,9 +5,15 @@ * Author: sowgro */ +#include <stm32l4xx.h> +#include <stdio.h> +#include <string.h> +#include "player_actions.h" +#include "UART.h" +#include "project.h" + static char buffer[80]; static char* cur = buffer; -static uint8_t state = STOPPED_STATE; void remote_control_start() { NVIC_EnableIRQ (USART2_IRQn); @@ -24,7 +30,8 @@ void remote_control_stop() { } -static void parse_input(char buffer[], uint8_t *state) { +static void parse_input(char buffer[]) { + uint8_t *state = project_get_state(); if (!strcmp(buffer, "HELP")) { help(); } @@ -48,23 +55,24 @@ static void parse_input(char buffer[], uint8_t *state) { } } +#include "systick.h" void USART2_IRQHandler() { int ch = USART_Read(USART2); - remote_control_parse_input(ch); + putchar(ch); if (!ch) - continue; + return; if (ch == '\r') { *cur = 0; - handle_input(buffer, &state); + parse_input(buffer); cur = buffer; - continue; + return; } if (ch == 0x08 || ch == 0x7F) { if (cur <= buffer) - continue; + return; cur--; printf("\b \b"); - continue; + return; } *cur++ = ch; } diff --git a/project/Core/Src/main.c b/project/Core/Src/main.c index 9b6830d..39ac069 100644 --- a/project/Core/Src/main.c +++ b/project/Core/Src/main.c @@ -24,8 +24,8 @@ int main(void){ // application run function printf("\n\n\n\n\n\n\n\n\r"); // run_demo(); -// project_run(); + project_run(); // activity10_run(); - hw6_run(); +// hw6_run(); } |
