Sync
This commit is contained in:
parent
5e214b6852
commit
55f94cd2d0
|
@ -12,7 +12,7 @@ enum class Operator{
|
|||
};
|
||||
|
||||
void initRandomSeed(){
|
||||
M5.IMU.Init();
|
||||
M5.Imu.Init();
|
||||
float accX, accY, accZ;
|
||||
delay(250); // Wait for imu init
|
||||
M5.IMU.getAccelData(&accX, &accY, &accZ);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include <M5StickCPlus.h>
|
||||
#include <M5StickCPlus2.h>
|
||||
#include "InputSystem.h"
|
||||
#include "MathSystem.h"
|
||||
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
#include <M5Core2.h>
|
||||
|
||||
#define penaltyAmount 30 * 1000
|
||||
#define drawInterval 1000
|
||||
|
||||
unsigned long startTime;
|
||||
const unsigned long countdownDuration = 5 * 60 * 1000; // 5 minutes in milliseconds
|
||||
unsigned long penalties = 0;
|
||||
|
||||
void reset()
|
||||
{
|
||||
startTime = millis();
|
||||
penalties = 0;
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
M5.begin();
|
||||
M5.Lcd.begin();
|
||||
M5.Lcd.fillScreen(TFT_BLACK); // Set initial background color
|
||||
startTime = millis(); // Record the start time
|
||||
|
||||
Serial.begin(9600);
|
||||
}
|
||||
|
||||
bool pressed = false;
|
||||
void loop()
|
||||
{
|
||||
unsigned long elapsedTime = millis() - startTime + penalties;
|
||||
unsigned long remainingTime = countdownDuration - elapsedTime;
|
||||
|
||||
// Check if the time has run out
|
||||
if (remainingTime <= 0)
|
||||
{
|
||||
displayTime(0, 0); // Display 00:00
|
||||
turnScreenRed();
|
||||
return;
|
||||
}
|
||||
|
||||
// Calculate remaining minutes and seconds
|
||||
unsigned long minutes = remainingTime / (60 * 1000);
|
||||
unsigned long seconds = (remainingTime / 1000) % 60;
|
||||
|
||||
// Display remaining time
|
||||
if (millis() % drawInterval < 10)
|
||||
{
|
||||
M5.Lcd.fillScreen(BLACK);
|
||||
displayTime(minutes, seconds);
|
||||
}
|
||||
|
||||
if (!pressed && M5.Touch.ispressed())
|
||||
{
|
||||
Serial.println("Pressed");
|
||||
penalties += penaltyAmount;
|
||||
pressed = true;
|
||||
}
|
||||
else if (pressed && !M5.Touch.ispressed())
|
||||
{
|
||||
pressed = false;
|
||||
}
|
||||
}
|
||||
|
||||
void displayTime(unsigned long minutes, unsigned long seconds)
|
||||
{
|
||||
M5.Lcd.setCursor(75, 50);
|
||||
M5.Lcd.setTextColor(TFT_WHITE);
|
||||
M5.Lcd.setTextSize(100);
|
||||
M5.Lcd.printf("%02d:%02d", minutes, seconds);
|
||||
}
|
||||
|
||||
void turnScreenRed()
|
||||
{
|
||||
M5.Lcd.fillScreen(TFT_RED);
|
||||
}
|
Loading…
Reference in New Issue