summaryrefslogtreecommitdiff
path: root/project/Core
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-11-04 23:34:37 -0500
committersowgro <tpoke.ferrari@gmail.com>2025-11-04 23:34:37 -0500
commitd5dac33672ae1e940b3fda4ee4f4e940229d996f (patch)
tree25a07bc1eac32d60376008911cc9cf97b3393d6c /project/Core
parenta98361e6babc866bd7b4ed6b22f197e98e2dc28a (diff)
download340-repo-Sowgro-d5dac33672ae1e940b3fda4ee4f4e940229d996f.tar.gz
340-repo-Sowgro-d5dac33672ae1e940b3fda4ee4f4e940229d996f.tar.bz2
340-repo-Sowgro-d5dac33672ae1e940b3fda4ee4f4e940229d996f.zip
get most interrupt handlers working for project pt2
Diffstat (limited to '')
-rw-r--r--project/Core/Inc/Project/local_control.h17
-rw-r--r--project/Core/Inc/Project/project.h2
-rw-r--r--project/Core/Inc/Project/remote_control.h17
-rw-r--r--project/Core/Src/Activties/activity9.c2
-rw-r--r--project/Core/Src/Devices/GPIO.c2
-rw-r--r--project/Core/Src/Homework/hw6.c8
-rw-r--r--project/Core/Src/Project/local_control.c16
-rw-r--r--project/Core/Src/Project/player_actions.c1
-rw-r--r--project/Core/Src/Project/project.c23
-rw-r--r--project/Core/Src/Project/remote_control.c24
-rw-r--r--project/Core/Src/main.c4
11 files changed, 93 insertions, 23 deletions
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();
}