8000 Review has proven that Ticker callbacks are documented to occur in SY… · dok-net/arduino-esp8266@1878d6f · GitHub
[go: up one dir, main page]

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 1878d6f

Browse files
committed
Review has proven that Ticker callbacks are documented to occur in SYS context, they are
scheduled, not called in ISR.
1 parent c55ffe6 commit 1878d6f

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

libraries/Ticker/examples/TickerFunctional/TickerFunctional.ino

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ class ExampleClass {
1212
public:
1313
ExampleClass(int pin, int duration) : _pin(pin), _duration(duration) {
1414
pinMode(_pin, OUTPUT);
15-
_myTicker.attach_ms(_duration, std::bind(&ExampleClass::classBlink, this));
15+
_myTicker.attach_ms(_duration, [this]() {
16+
classBlink();
17+
});
1618
}
1719
~ExampleClass() {};
1820

@@ -52,7 +54,7 @@ void setup() {
5254
scheduledTicker.attach_ms_scheduled(100, scheduledBlink);
5355

5456
pinMode(LED4, OUTPUT);
55-
parameterTicker.attach_ms(100, std::bind(parameterBlink, LED4));
57+
parameterTicker.attach_ms(100, parameterBlink, LED4);
5658

5759
pinMode(LED5, OUTPUT);
5860
lambdaTicker.attach_ms(100, []() {

libraries/Ticker/src/Ticker.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class Ticker
3838
// callback will be called at following loop() after ticker fires
3939
void attach_scheduled(float seconds, callback_t callback)
4040
{
41-
_callback = std::bind(schedule_function, callback);
41+
_callback = [callback]() { schedule_function(callback); };
4242
_attach_ms(1000UL * seconds, true, _callback, _callback.arg());
4343
}
4444

@@ -52,14 +52,14 @@ class Ticker
5252
// callback will be called at following loop() after ticker fires
5353
void attach_ms_scheduled(uint32_t milliseconds, callback_t callback)
5454
{
55-
_callback = std::bind(schedule_function, callback);
55+
_callback = [callback]() { schedule_function(callback); };
5656
_attach_ms(milliseconds, true, _callback, _callback.arg());
5757
}
5858

5959
// callback will be called at following yield() after ticker fires
6060
void attach_ms_scheduled_accurate(uint32_t milliseconds, callback_t callback)
6161
{
62-
_callback = std::bind(schedule_recurrent_function_us, [callback]() { callback(); return false; }, 0, nullptr);
62+
_callback = [callback]() { schedule_recurrent_function_us([callback]() { callback(); return false; }, 0); };
6363
_attach_ms(milliseconds, true, _callback, _callback.arg());
6464
}
6565

@@ -95,7 +95,7 @@ class Ticker
9595
// callback will be called at following loop() after ticker fires
9696
void once_scheduled(float seconds, callback_t callback)
9797
{
98-
_callback = std::bind(schedule_function, callback);
98+
_callback = [callback]() { schedule_function(callback); };
9999
_attach_ms(1000UL * seconds, false, _callback, _callback.arg());
100100
}
101101

@@ -109,7 +109,7 @@ class Ticker
109109
// callback will be called at following loop() after ticker fires
110110
void once_ms_scheduled(uint32_t milliseconds, callback_t callback)
111111
{
112-
_callback = std::bind(schedule_function, callback);
112+
_callback = [callback]() { schedule_function(callback); };
113113
_attach_ms(milliseconds, false, _callback, _callback.arg());
114114
}
115115

0 commit comments

Comments
 (0)
0