diff options
Diffstat (limited to 'project/Core/Src/Project/project.c')
| -rw-r--r-- | project/Core/Src/Project/project.c | 62 |
1 files changed, 19 insertions, 43 deletions
diff --git a/project/Core/Src/Project/project.c b/project/Core/Src/Project/project.c index 428dc54..a939879 100644 --- a/project/Core/Src/Project/project.c +++ b/project/Core/Src/Project/project.c @@ -13,55 +13,31 @@ #include "hw4.h" #include "player_actions.h" +#define LOCAL_MODE (1) +#define REMOTE_MODE (2) + void project_run() { - char buffer[80]; - char* cur = buffer; - uint8_t state = STOPPED_STATE; + int mode = LOCAL_MODE; + + GPIO_Init(); + NVIC_EnableIRQ(EXTI9_5_IRQn); - help(); for (;;) { + switch (mode) { + case REMOTE_MODE: + remote_control_loop(); break; + case LOCAL_MODE: + local_control_loop(); break; + } + if (state == PAUSED_STATE) pause_loop(); - char ch = read_and_print_char_nonblocking(); - if (!ch) - continue; - if (ch == '\r') { - *cur = 0; - handle_input(buffer, &state); - cur = buffer; - continue; - } - if (ch == 0x08 || ch == 0x7F) { - if (cur <= buffer) - continue; - cur--; - printf("\b \b"); - continue; - } - *cur++ = ch; } } -void handle_input(char buffer[], uint8_t *state) { - if (!strcmp(buffer, "HELP")) { - help(); - } - else if (!strcmp(buffer, "NEXT")) { - next(); - } - else if (!strcmp(buffer, "PLAY")) { - play(); - *state = PLAYING_STATE; - } - else if (!strcmp(buffer, "PAUSE")) { - pause(); - *state = PAUSED_STATE; - } - else if (!strcmp(buffer, "STOP")) { - stop(); - *state = STOPPED_STATE; - } - else { - printf("Unknown command \"%s\"\n\r", buffer); - } +void EXTI9_5_IRQHandler() { + } + + + |
