1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-21 10:26:06 +03:00
esp8266/cores/esp8266/FunctionalInterrupt.h
hreintke 641c5cdc61 Scheduled Interrupt (#4609)
* Scheduled Interrupt

* use capital letter for Schedule.h

* Prevent memory leak when attach is called multiple times without detach

* Add improved schedule_function

* WIP : Integrate FunctionalInterrupt & ScheduledInterrupt

* Fix travis error
2018-06-19 17:26:57 -04:00

38 lines
851 B
C++

#ifndef FUNCTIONALINTERRUPT_H
#define FUNCTIONALINTERRUPT_H
#include <stddef.h>
#include <stdint.h>
#include <functional>
#include <ScheduledFunctions.h>
extern "C" {
#include "c_types.h"
#include "ets_sys.h"
}
// Structures for communication
struct InterruptInfo {
uint8_t pin = 0;
uint8_t value = 0;
uint32_t micro = 0;
};
struct FunctionInfo {
std::function<void(void)> reqFunction = nullptr;
std::function<void(InterruptInfo)> reqScheduledFunction = nullptr;
};
struct ArgStructure {
InterruptInfo* interruptInfo = nullptr;
FunctionInfo* functionInfo = nullptr;
};
static ScheduledFunctions* scheduledInterrupts;
void attachInterrupt(uint8_t pin, std::function<void(void)> intRoutine, int mode);
void attachScheduledInterrupt(uint8_t pin, std::function<void(InterruptInfo)> scheduledIntRoutine, int mode);
#endif //INTERRUPTS_H