TimerOne и TimerThree не нравится ESP8266

#define DT D6
#include "TimerThree.h"
#include "GyverEncoder.h"
Encoder enc1(CLK, DT);
int value = 0;
void setup() {
  Serial.begin(9600);
  enc1.setType(TYPE2);    // тип энкодера TYPE1 одношаговый, TYPE2 двухшаговый. Если ваш энкодер работает странно, смените тип
  Timer3.initialize (10000);            // установка таймера на каждые 1000 микросекунд (= 1 мс)
  Timer3.attachInterrupt(timerIsr);   // запуск таймера
}

void loop() {
  if (enc1.isRight()) Serial.println("Right");         // если был поворот
  if (enc1.isLeft()) Serial.println("Left");
}
void timerIsr() {   // прерывание таймера
  enc1.tick();     // отработка теперь находится здесь
}

Здравствуйте, скопировал этот код с примера Алекса Гувера, установил все необходимые библиотеки, но все равно вылазит ошибка по методам таймера, причем без разницы использую TimerOne или TimerThree. Текст ошибки:

ПРЕДУПРЕЖДЕНИЕ: библиотека TimerThree должна запускаться на архитектурах avr и может быть несовместима с вашей платой на архитектуре esp8266.
C:\Users\Admin\AppData\Local\Temp.arduinoIDE-unsaved202344-7652-v22oyp.jd07n\sketch_may4a\sketch_may4a.ino: In function ‘void setup()’:
C:\Users\Admin\AppData\Local\Temp.arduinoIDE-unsaved202344-7652-v22oyp.jd07n\sketch_may4a\sketch_may4a.ino:10:10: error: ‘class TimerThree’ has no member named ‘initialize’
10 | Timer3.initialize (10000); // установка таймера на каждые 1000 микросекунд (= 1 мс)
| ^~~~~~~~~~
C:\Users\Admin\AppData\Local\Temp.arduinoIDE-unsaved202344-7652-v22oyp.jd07n\sketch_may4a\sketch_may4a.ino:11:10: error: ‘class TimerThree’ has no member named ‘attachInterrupt’
11 | Timer3.attachInterrupt(timerIsr); // запуск таймера
| ^~~~~~~~~~~~~~~

exit status 1

Compilation error: ‘class TimerThree’ has no member named ‘initialize’

Запускаю я это все на nodemcu esp8266

Ни о чем не говорит ?

А дублирование циклов setup и loop, это случайно или так задумано ?

Подключал дисплей lcd 20x4 вылазило такое же предупреждение и все прекрасно работало

это случай два раза вставил

И чем этот факт должен помочь?

Съешьте два гриба: мухомор и бледную поганку. От первого прекрасно просретесь, а от второй ласты склеите.

Что работало-то? Таймеры? - сомневаюсь
Скорее всего работало без таймеров.

В общем, с дисплеем или без, но эта библиотека на ЕСП8266 работать не будет.

Ну если он компилятору не верит, вряд ли поверит незнакомым людям :slight_smile:

Вот вместо того чтобы просто объяснить, почему не будет работать, сидят умники одни, эксперты, которые все умеют и все знают, не дали ни одного адекватного ответа

Lcd работал с точно таким же предупреждением

Я вам просто говорю что точно с таким же предупреждением экран работал, я не говорю что это чем то должно помочь

Если код написан через настройку таймеров через регистры AVR, а в ESP таких регистров нет СОВСЕМ, то как оно может заработать ???
LCD работает, потому что это отдельное устройство и регистры LCD находятся на самом LCD и через что их настраивать не имеет особой разницы !

Есть что то подобное для esp?

Иван, судя по вашим вопросам - вы не поймете :slight_smile:

Понимаете, не все контроллеры одинаковы. Эта библиотека написана с использованием команд, которые совместимы только с контроллерами АВР(Ардуино Уно, Нано, может быть Мега). На контроллере ЕСП8266 просто нет таких команд, он их не понимает.

Такого обьяснения достаточно?

Вы задачу огласите ! Может(наверняка) найдётся решение !!!

наверняка.
Только я думаю, что не нужны вам эти библиотеки. Они отлично заменяются кодом на основе миллис, который работает на ЛЮБОЙ ардуино-совместимой плате

Согласен с тем что я не понимаю, поэтому и спрашиваю чтобы получить объяснение или ссылку где можно почитать, а за ваш ответ спасибо

Задача в том что хочу подключить lcd, энкодер, два датчика температуры dht11 и dht22, мультиплексор, аналоговые датчики газа, света, влажности и датчик реального времени, затем вывести данные с датчиков на экран, сначала данные с датчиков температуры, потом поворот энкодером вывод данных с датчика влажности, снова поворот энкодера данные с датчика газа и ещё поворот энкодера данные с датчика времени, при этом чтобы данные после поворота энкодера обновлялись каждую секунду, либо по изменению данных с датчиков, а у меня получается так что, когда я поворачиваю энкодером, данные появляются на экране, но не обновляются. Код сейчас скину

В этом описании нет места для Таймера …

А корованы грабить не надо???

Иван, судя по вопросам, вам надо начинать с мигания светодиодом. Причем ОДНИМ! А вы хватаетесь сразу за проект с десятком сенсоров, энкодером, экраном…
Не рассчитывайте, что вы найдете подо все это готовый код. И писать за вас на форуме его никто не будет.
Начинайте с простого. Зато сами.

1 лайк

После неологизма “вылазит”, да еще и в названии темы, есть два вопроса?

  1. Почему вообще идет обсуждение?
  2. И раз уже все равно идет, то почему не в “Песочнице”? Какое отношение к Программированию?

Перенести в Песочницу? Б707 сам мог бы, но у него Принципы, что я вполне уважаю. У меня их нет и я готов перенести эту, простите “тему” в Песочницу.