Initial commit

This commit is contained in:
Nacho
2025-05-24 15:14:47 +02:00
parent 043c4640d0
commit c0e829e4ca
56 changed files with 2611 additions and 1 deletions
+56
View File
@@ -0,0 +1,56 @@
#include "defs/defs.h"
#include "buttons.h"
#include <Arduino.h>
uint64_t lastPressedButtonTime = esp_timer_get_time();
bool inactive = false;
bool screenOff = false;
bool k1_prev = HIGH;
bool k2_prev = HIGH;
bool k3_prev = HIGH;
bool k4_prev = HIGH;
void buttons_checkInactivity() {
uint64_t currentTime = esp_timer_get_time();
if (currentTime - lastPressedButtonTime > INACTIVITY_THRESHOLD_TIME_US && !screenOff) {
digitalWrite(BL_PIN, LOW);
screenKey = OFF_SCREEN;
screenOff = true;
} else if (currentTime - lastPressedButtonTime > LAST_PRESSED_BUTTON_THRESHOLD_TIME_US && !inactive) {
screenKey = IDLE_SCREEN;
inactive = true;
}
}
uint8_t buttons_getPressedButtons() {
bool k1_current = digitalRead(K1_PIN);
bool k2_current = digitalRead(K2_PIN);
bool k3_current = digitalRead(K3_PIN);
bool k4_current = digitalRead(K4_PIN);
uint8_t retV = (
(k1_prev == HIGH && k1_current == LOW) << 3 |
(k2_prev == HIGH && k2_current == LOW) << 2 |
(k3_prev == HIGH && k3_current == LOW) << 1 |
(k4_prev == HIGH && k4_current == LOW)
);
if (retV != 0) {
tone(SPK_PIN, BEEP_FREQ_HZ, BEEP_LEN_MS);
lastPressedButtonTime = esp_timer_get_time();
inactive = false;
screenOff = false;
}
k1_prev = k1_current;
k2_prev = k2_current;
k3_prev = k3_current;
k4_prev = k4_current;
delay(15);
return retV;
}
+7
View File
@@ -0,0 +1,7 @@
#ifndef BUTTONS_H
#define BUTTONS_H
uint8_t buttons_getPressedButtons();
void buttons_checkInactivity();
#endif