mirror of
https://github.com/esp8266/Arduino.git
synced 2025-07-11 15:22:13 +03:00
add regular scheduled functions, now also callable on yield()
(#6039)
* add regular scheduled functions, now also callable on `yield()` added bool schedule_function_us(std::function<bool(void)> fn, uint32_t repeat_us) lambda must return true to be not removed from the schedule function list if repeat_us is 0, then the function is called only once. Legacy schedule_function() is preserved This addition allows network drivers like ethernet chips on lwIP to be regularly called - even if some user code loops on receiving data without getting out from main loop (callable from yield()) - without the need to call the driver handling function (transparent) This may be also applicable with common libraries (mDNS, Webserver, )
This commit is contained in:
@ -4,7 +4,6 @@
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <functional>
|
||||
#include <ScheduledFunctions.h>
|
||||
|
||||
extern "C" {
|
||||
#include "c_types.h"
|
||||
@ -29,7 +28,6 @@ struct ArgStructure {
|
||||
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);
|
||||
|
||||
|
Reference in New Issue
Block a user