summaryrefslogtreecommitdiff
path: root/project
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--project/.settings/language.settings.xml4
-rw-r--r--project/Core/Inc/Project/player_actions.h14
-rw-r--r--project/Core/Inc/Project/project.h2
-rw-r--r--project/Core/Src/Project/player_actions.c38
-rw-r--r--project/Core/Src/Project/project.c13
-rw-r--r--project/Core/Src/Project/remote_control.c23
6 files changed, 51 insertions, 43 deletions
diff --git a/project/.settings/language.settings.xml b/project/.settings/language.settings.xml
index 974b8a7..ae082b2 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="-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 &quot;${INPUTS}&quot;" prefer-non-shared="true">
+ <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 &quot;${INPUTS}&quot;" 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="-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 &quot;${INPUTS}&quot;" prefer-non-shared="true">
+ <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 &quot;${INPUTS}&quot;" 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/player_actions.h b/project/Core/Inc/Project/player_actions.h
index c6db2c5..9f67ba4 100644
--- a/project/Core/Inc/Project/player_actions.h
+++ b/project/Core/Inc/Project/player_actions.h
@@ -12,11 +12,13 @@
#define PAUSED_STATE (2)
#define STOPPED_STATE (3)
-void help();
-void next();
-void play();
-void pause();
-void pause_loop();
-void stop();
+uint8_t player_get_state();
+void player_set_state(uint8_t newState);
+
+void player_help();
+void player_next();
+void player_play();
+void player_pause();
+void player_stop();
#endif /* INC_PROJECT_PLAYER_ACTIONS_H_ */
diff --git a/project/Core/Inc/Project/project.h b/project/Core/Inc/Project/project.h
index ed41f78..9f7aa48 100644
--- a/project/Core/Inc/Project/project.h
+++ b/project/Core/Inc/Project/project.h
@@ -13,8 +13,6 @@
void project_run();
-uint8_t *project_get_state();
-
uint8_t project_get_mode();
#endif /* INC_PROJECT_H_ */
diff --git a/project/Core/Src/Project/player_actions.c b/project/Core/Src/Project/player_actions.c
index 39b62df..dbb7859 100644
--- a/project/Core/Src/Project/player_actions.c
+++ b/project/Core/Src/Project/player_actions.c
@@ -13,7 +13,17 @@
#include "LED.h"
#include "systick.h"
-void help() {
+static uint8_t state = STOPPED_STATE;
+
+uint8_t player_get_state() {
+ return state;
+}
+
+void player_set_state(uint8_t newState) {
+ state = newState;
+}
+
+void player_help() {
printf("\r***REMOTE LED CONTROL MENU***\r\n");
printf("Available User Commands:\r\n");
printf("NEXT - Show next song info\r\n");
@@ -22,7 +32,7 @@ void help() {
printf("STOP - Stop the song (LED off)\r\n");
}
-void next() {
+void player_next() {
static int current_song = -1;
current_song++;
if (current_song > 4)
@@ -40,20 +50,28 @@ void next() {
printf("Tempo: %i\r\n", song_info.tempo);
}
-void play() {
+void player_play() {
+ state = PLAYING_STATE;
LED_On();
}
-void pause() {
+void player_pause() {
+ state = PAUSED_STATE;
init_systick();
}
-void pause_loop() {
- if (check_systick()) {
- LED_Toggle();
- }
+void player_stop() {
+ state = STOPPED_STATE;
+ LED_Off();
}
-void stop() {
- LED_Off();
+void SysTick_Handler() {
+ if (state != PAUSED_STATE)
+ return;
+
+ static int count = 0;
+ if(!(count & 1023)) {
+ LED_Toggle();
+ }
+ count++;
}
diff --git a/project/Core/Src/Project/project.c b/project/Core/Src/Project/project.c
index 7188207..56932f1 100644
--- a/project/Core/Src/Project/project.c
+++ b/project/Core/Src/Project/project.c
@@ -17,11 +17,6 @@
#include "GPIO.h"
#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() {
@@ -42,10 +37,6 @@ void project_run() {
case LOCAL_MODE:
local_control_loop(); break;
}
-
- if (state == PAUSED_STATE) {
- pause_loop();
- }
}
}
@@ -58,9 +49,9 @@ void EXTI15_10_IRQHandler() {
mode = !mode;
switch (mode) {
case REMOTE_MODE:
- puts("\r\n***REMOTE MODE ACTIVE***\r\n"); break;
+ puts("\r\n***REMOTE MODE ACTIVE***\r"); break;
case LOCAL_MODE:
- puts("\r\n***MANUAL OVERRIDE MODE ACTIVE***\r\n"); break;
+ puts("\r\n***MANUAL OVERRIDE MODE ACTIVE***\r"); break;
}
}
diff --git a/project/Core/Src/Project/remote_control.c b/project/Core/Src/Project/remote_control.c
index 2153a4a..c8c1f73 100644
--- a/project/Core/Src/Project/remote_control.c
+++ b/project/Core/Src/Project/remote_control.c
@@ -11,6 +11,8 @@
#include "player_actions.h"
#include "UART.h"
#include "project.h"
+#include "systick.h"
+#include "player_actions.h"
static char buffer[80];
static char* cur = buffer;
@@ -19,7 +21,7 @@ void remote_control_init() {
NVIC_EnableIRQ (USART2_IRQn);
USART2->CR1 |= USART_CR1_RXNEIE; // 1 << 5
- help();
+ player_help();
}
void remote_control_loop() {
@@ -27,36 +29,33 @@ void remote_control_loop() {
}
static void parse_input(char buffer[]) {
- uint8_t *state = project_get_state();
if (!strcmp(buffer, "HELP")) {
- help();
+ player_help();
}
else if (!strcmp(buffer, "NEXT")) {
- next();
+ player_next();
}
else if (!strcmp(buffer, "PLAY")) {
- play();
- *state = PLAYING_STATE;
+ player_play();
}
else if (!strcmp(buffer, "PAUSE")) {
- pause();
- *state = PAUSED_STATE;
+ player_pause();
}
else if (!strcmp(buffer, "STOP")) {
- stop();
- *state = STOPPED_STATE;
+ player_stop();
}
else {
printf("Unknown command \"%s\"\n\r", buffer);
}
}
-#include "systick.h"
void USART2_IRQHandler() {
int ch = USART_Read(USART2);
- if (project_get_mode() != REMOTE_MODE)
+ if (project_get_mode() != REMOTE_MODE) {
+ cur = buffer;
return;
+ }
putchar(ch);
if (!ch)