#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’
Вот вместо того чтобы просто объяснить, почему не будет работать, сидят умники одни, эксперты, которые все умеют и все знают, не дали ни одного адекватного ответа
Если код написан через настройку таймеров через регистры AVR, а в ESP таких регистров нет СОВСЕМ, то как оно может заработать ???
LCD работает, потому что это отдельное устройство и регистры LCD находятся на самом LCD и через что их настраивать не имеет особой разницы !
Понимаете, не все контроллеры одинаковы. Эта библиотека написана с использованием команд, которые совместимы только с контроллерами АВР(Ардуино Уно, Нано, может быть Мега). На контроллере ЕСП8266 просто нет таких команд, он их не понимает.
наверняка.
Только я думаю, что не нужны вам эти библиотеки. Они отлично заменяются кодом на основе миллис, который работает на ЛЮБОЙ ардуино-совместимой плате
Задача в том что хочу подключить lcd, энкодер, два датчика температуры dht11 и dht22, мультиплексор, аналоговые датчики газа, света, влажности и датчик реального времени, затем вывести данные с датчиков на экран, сначала данные с датчиков температуры, потом поворот энкодером вывод данных с датчика влажности, снова поворот энкодера данные с датчика газа и ещё поворот энкодера данные с датчика времени, при этом чтобы данные после поворота энкодера обновлялись каждую секунду, либо по изменению данных с датчиков, а у меня получается так что, когда я поворачиваю энкодером, данные появляются на экране, но не обновляются. Код сейчас скину
Иван, судя по вопросам, вам надо начинать с мигания светодиодом. Причем ОДНИМ! А вы хватаетесь сразу за проект с десятком сенсоров, энкодером, экраном…
Не рассчитывайте, что вы найдете подо все это готовый код. И писать за вас на форуме его никто не будет.
Начинайте с простого. Зато сами.