esp32 firmware for a toaster reflow oven WIP!!!!!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
reflower/main/gui.c

59 lines
1.3 KiB

#include "gui.h"
#include "nokia.h"
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
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<pos; i++) {
printf(" ");
}
printf("#\n");
}
}