Нет подходящего вызова функции для таймера?

Здесь я использую библиотеку Timer с пером Adafruit m0: https://github.com/JChristensen/Timer https://playground.arduino.cc/code/timer Я не могу понять, почему получаю эту ошибку:

нет соответствующей функции для вызова Timer::every(int, void (&)())'

Вот эта часть кода:

void setup(){
      everyAlt = t.every(100, readAltimeter);
      everyLaunch = t.every(500, detectLaunch);
      t.oscillate(blueled, 500, HIGH);
    }


    void readAltimeter(){
      alts[altPlace] = bmp.readAltitude()-zeroAlt;
      altPlace++;
    }


    void detectLaunch(){
      tempSpeed = 0;
      int x = 0;
      while (x < 5){
        tempSpeed += abs((alts[x]-alts[x+1])*10);
      }
      if (tempSpeed/5 > 5){
        t.stop(everyLaunch);
      }
    }

Я новичок в Arduino, поэтому буду очень признателен за любую помощь!

, 👍0

Обсуждение

Я не могу воспроизвести вашу проблему с этим кодом: https://pastebin.com/WQBCb1AQ Правильно ли компилируется приведенный выше код?, @Maximilian Gerhardt

Да, у меня все еще та же ошибка компиляции. https://pastebin.com/W63QC2r4, @Spencer Teeter

Мы с вами используем две разные версии библиотеки. Функция every имеет, например, перегрузку int8_t Every(unsigned long period, void (*callback)(void*), void* context); в вашей библиотеке, но не в текущей основной версии (https://github.com). /JChristensen/Timer/blob/master/Timer.h#L40). Пожалуйста, удалите старую библиотеку таймера из менеджера библиотек, загрузите новейший ZIP-файл из репозитория Github, переустановите библиотеку и повторите попытку., @Maximilian Gerhardt


1 ответ


2

Установлена неверная версия. Правильная версия загружена с текущего мастера: github.com/JChristensen/Timer

,