diff --git a/watchos.ino b/watchos.ino index 13e216b..19ee5db 100644 --- a/watchos.ino +++ b/watchos.ino @@ -3,16 +3,18 @@ #include "EAT.h" #include "Colours.h" +#include "UI.h" #include "PowerManagement.h" #include "UserInput.h" #include "Clock.h" int count = 0; +bool input_a = false, input_b = false; int test_func(int pid, unsigned int signal) { if (signal & SIGNAL_START) { - Kernel_signal_mask(pid, SIGNAL_START | SIGNAL_STOP | SIGNAL_TICK | SIGNAL_REDRAW); + Kernel_signal_mask(pid, SIGNAL_START | SIGNAL_STOP | SIGNAL_TICK | SIGNAL_REDRAW | SIGNAL_INPUT_A | SIGNAL_INPUT_B); if (EAT_allocate(1, 2)) { EAT_write(1, 0, 0); @@ -33,10 +35,23 @@ int test_func(int pid, unsigned int signal) return 255; } - if ((signal & SIGNAL_TICK) && (signal & SIGNAL_INPUT_A) == 0 && (signal & SIGNAL_INPUT_B) == 0) + if ((signal & SIGNAL_TICK)) { count++; Kernel_signal(SIGNAL_REDRAW); + input_a = false; + input_b = false; + } + + if ((signal & SIGNAL_INPUT_A) && !input_a) + { + input_a = true; + Kernel_signal(SIGNAL_REDRAW); + } + if ((signal & SIGNAL_INPUT_B) && !input_b) + { + input_b = true; + Kernel_signal(SIGNAL_REDRAW); } if (signal & SIGNAL_REDRAW) @@ -44,7 +59,11 @@ int test_func(int pid, unsigned int signal) M5.Lcd.setCursor(0, 0); M5.Lcd.print("Ran: "); M5.Lcd.print(String(count)); - M5.Lcd.print(" times"); + M5.Lcd.println(" times"); + if (input_a) + M5.Lcd.println("Input A!"); + if (input_b) + M5.Lcd.println("Input B!"); } return 0; @@ -54,10 +73,17 @@ void setup() { M5.begin(); Kernel_setup(); - Kernel_start(&PowerManagement, 1000); - Kernel_start(&UserInput, 0); - //Kernel_start(&test_func, 5000); - Kernel_start(&Clock, 1000); + int pid; + pid = Kernel_start(&UI, 86400); + Serial.printf("[UI ] pid %d\n", pid); + pid = Kernel_start(&PowerManagement, 1000); + Serial.printf("[POWER] pid %d\n", pid); + pid = Kernel_start(&UserInput, 0); + Serial.printf("[INPUT] pid %d\n", pid); + pid = Kernel_start(&test_func, 5000); + Serial.printf("[TEST ] pid %d\n", pid); + pid = Kernel_start(&Clock, 1000); + Serial.printf("[CLOCK] pid %d\n", pid); M5.update(); if (M5.BtnB.isPressed()) @@ -68,10 +94,6 @@ void setup() { EAT_load(); } - - M5.Lcd.fillScreen(TFT_DARKGREY); - M5.Lcd.setRotation(3); - M5.Lcd.setTextColor(TFT_WHITE, TFT_DARKGREY); } void loop()