mirror of
https://github.com/nacabaro/nacapet.git
synced 2026-10-01 07:31:38 +00:00
Initial commit
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
#ifndef BUTTONS_H
|
||||
#define BUTTONS_H
|
||||
|
||||
uint8_t buttons_getPressedButtons();
|
||||
void buttons_checkInactivity();
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user