Я пытаюсь понять, почему второй таймер millis() работает не так, как я ожидал. Есть ли какая-то инкапсуляция, которую я не понимаю при использовании лямбда-выражений? А может я просто чего-то не вижу!
второе выражение в loop() не печатает, первое печатает:
unsigned long timerVal = 0;
void setup()
{
Serial.begin(9600);
Serial.println();
}
void loop()
{
[&timerVal](unsigned long currentTime){if(currentTime - timerVal > 1000UL) {Serial.println("Hello World"); timerVal += 1000UL;}}(millis());
[&timerVal](){if(millis() - timerVal > 1000UL) {Serial.println("Why Not Me?"); timerVal += 1000UL;}};
}