2016-11-06 11:03:06 +01:00
|
|
|
#pragma once
|
|
|
|
#include "Arduino.h"
|
|
|
|
extern "C" {
|
|
|
|
#include "osapi.h"
|
|
|
|
}
|
|
|
|
// Human Interface Button
|
|
|
|
class HIB {
|
|
|
|
private:
|
2016-11-11 10:16:26 +01:00
|
|
|
ETSTimer timer;
|
|
|
|
unsigned long previousMillis;
|
|
|
|
unsigned long longPressMsec;
|
2016-11-06 11:03:06 +01:00
|
|
|
|
|
|
|
public:
|
2016-11-11 10:16:26 +01:00
|
|
|
uint8_t pin;
|
|
|
|
uint8_t initialState;
|
|
|
|
uint8_t state;
|
|
|
|
uint8_t debouncing;
|
|
|
|
HIB(uint8_t pin, uint8_t initialState, unsigned long longPressMsec = 5000);
|
|
|
|
void IRQ_handler();
|
|
|
|
void onButtonPressed();
|
|
|
|
void onButtonReleased();
|
|
|
|
void onLongButtonPressed();
|
|
|
|
void invertState();
|
2016-11-06 11:03:06 +01:00
|
|
|
};
|