#include "gui.h" #include "nokia.h" #include #include static void gui_thread(void *arg); TaskHandle_t hGuiThread = NULL; void gui_init() { printf("GUI init\n"); LCD_setup(); LCD_clearDisplay(0); LCD_setStr("Hello World", 0, 0, 1); LCD_updateDisplay(); int rv = xTaskCreate(gui_thread, "gui", 4096, NULL, 3, &hGuiThread); assert (rv == pdPASS); } static void __attribute__((noreturn)) gui_thread(void *arg) { uint32_t pos = 20; #define NMAX 60 while (1) { uint32_t value; xTaskNotifyWait(0, ULONG_MAX, &value, portMAX_DELAY); printf("Knob event 0x%02x ", value); switch (value) { case 0b100: printf("PUSH |"); break; case 0b010: printf("BACK |"); if (pos == 0) { pos = NMAX; } else { pos--; } break; case 0b001: printf("FWD |"); if (pos == NMAX) { pos = 0; } else { pos += 1; } break; } for (int i=0; i