|
|
@ -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() |
|
|
|