Browse Source

Modify test func to handle button input again

master
Adam Pippin 4 years ago
parent
commit
bd5b1b0c9a
  1. 44
      watchos.ino

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

Loading…
Cancel
Save