Compare commits

..

1 Commits

Author SHA1 Message Date
Mathieu Maret b30bcb6674 Add Trace 2017-03-18 22:06:40 +01:00
2 changed files with 24 additions and 14 deletions

12
HIB.cpp
View File

@ -34,17 +34,24 @@ static void (*ISRList[MAX_PIN+1])() = {
};
void __timerCallback(void *data) {
Serial.printf("%s\n", __func__);
HIB *hib = static_cast<HIB *>(data);
hib->debouncing = false;
hib->invertState();
Serial.printf("New State %d \n", hib->state);
if (hib->state != digitalRead(hib->pin)){
hib->state = !hib->state;
Serial.printf("%s. Debounce failed\n", __func__);
return;
}
if(hib->state != hib->initialState)
if(hib->state != hib->initialState){
Serial.printf("Button Pressed\n");
hib->onInternalButtonPressed();
else
}
else{
Serial.printf("Button Released\n");
hib->onInternalButtonReleased();
}
}
@ -68,6 +75,7 @@ HIB::HIB(uint8_t p, uint8_t initState,
}
void HIB::IRQ_handler(){
Serial.printf("IRQ_handler on pin %d, debouncing %d\n", pin, debouncing);
if(!debouncing){
debouncing = true;
os_timer_arm(&timer, shortPressMsec, 0);

View File

@ -1,22 +1,24 @@
This library is intended to interact with button pluged on a ESP8266 using the Arduino SDK
Code Example
```c++
```Arduino
#include <HIB.h>
HIB *button;
HIB *button2;
HIB *button ;
HIB *button2 ;
void onButtonPressed(uint8_t pin) { Serial.printf("Button %d pressed \n", pin); }
void onButtonPressed(uint8_t pin){
Serial.printf("Sketch on button %d pressed \n", pin);
}
void setup() {
Serial.begin(115200);
// put your setup code here, to run once:
button = new HIB(0, HIGH, onButtonPressed);
button2 = new HIB(4, HIGH, onButtonPressed);
void setup()
{
Serial.begin(115200);
// put your setup code here, to run once:
button = new HIB(0, HIGH, onButtonPressed);
button2 = new HIB(4, HIGH, onButtonPressed);
}
void loop() {}
void loop() {
}
```