Из под Simpletimer не вызывается функция с аргументом

Тема в разделе "Arduino & Shields", создана пользователем Ампералекс, 6 июл 2017.

Метки:
  1. Всем привет.

    Вызываю функцию repeatMe2(t) в лоб и из пот таймера.
    В лоб работает, а из под таймера выдает ошибку:

    :16: error: invalid use of void expression
    timer.setTimer(200, repeatMe2(t), 5); // вызываем функкцию repeatMe2(t) 5 раз с интервалом в 0,2 секунд

    Код (C++):
    #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();
    }
     
  2. говорят что с этой библиотекой никак
    не вызывается функция с аргументом
    а с какой тогда будет?
     
  3. rkit

    rkit Гуру

    Вы не вызываете функцию из-под таймера. Вы вызываете функцию, а на результат выполнения заводите таймер. Учитесь читать язык, хотя бы.