Из под Simpletimer не вызывается функция с аргументом
- Войдите на сайт для отправки комментариев
Чт, 06/07/2017 - 16:09
Всем привет.
Вызываю функцию repeatMe2(t) в лоб и из дот таймера.
В лоб работает, а из под таймера выдает ошибку:
:16: error: invalid use of void expression
timer.setTimer(200, repeatMe2(t), 5); // вызываем функкцию repeatMe2(t) 5 раз с интервалом в 0,2 секунд
^
#include <SimpleTimer.h> SimpleTimer timer; // the timer object void setup() { Serial.begin(9600); timer.setInterval(1000, repeatMe); } // a function to be executed periodically void repeatMe() { Serial.print("repeatMe "); Serial.print("\t"); Serial.print("Uptime (s): "); Serial.println(millis() / 1000); int t = millis(); timer.setTimer(200, repeatMe2(t), 5); // вызываем функкцию repeatMe2(t) 5 разс интервалом в 0,2 секунд repeatMe2(t); } // a function to be called with argument void repeatMe2(int argument) { Serial.print("repeatMe2 "); Serial.print("\t"); Serial.print("Uptime (s): "); Serial.print("\t"); Serial.print(millis() / 1000); Serial.print("returned time = "); Serial.println(argument); } void loop() { timer.run(); }
Информация принята к сведению.
Если у Вас есть какой-то вопрос по этому поводу, то Вы его забыли задать.
Так, кстати, просто на всякий случай, если Ваш вопрос состоит в том "как вызвать из-под таймера функцию с параметром", ответ - с этой библиотекой, если в ней ничего не менять - никак.
Спасибо
а с какой библиотекой будет работать вызов фунуции с аргументом?
Не знаю. Я редко пользуюсь готовыми библиотеками, а потому не знаю какие бывают.
Вам нужна такая, где аргумент передаётся в функцию таймера отдельно, сам по себе. Т.е. адрес вызываемой функции сам по себе, а аргумент сам по себе. Только так.