Я же написал - в теле программы. Т.е. в цикле loop.analog.Read(A0) в обработчике события таймера?
АЦП выдает переменную, которую использует один из таймеров. Своевременность передачи переменной не имеет значения.
Я же написал - в теле программы. Т.е. в цикле loop.analog.Read(A0) в обработчике события таймера?
ИМХО. Я бы посоветовал перейти на более удобную IDE. VS Code + PlatfotmIO или Atom + PlatfotmIO.Запрос снимаю, ардуино IDE глюкнула.
Открыл новый проект, заново переписал код, и все заработало.
Приношу извинения.
Чисто для интереса. Не смог обнаружить в используемой мной библиотеке attach_scheldured_accurete. Какой версией пользуетесь?У ардуино esp8266 два стека - sys где крутится wifi и все критические функции и cont в котором крутится ваш код. У ticker есть 3 вида таймеров: просто *_attach, *_attach_scheldured и _atrach_scheldured_accurete. Разберитесь какой в каком стеке исполняется и когда.
Из за опечатки не нашел. Отбой.Чисто для интереса. Не смог обнаружить в используемой мной библиотеке attach_scheldured_accurete. Какой версией пользуетесь?
Да. Работает. И автор библиотеки то-же.aZholtikov, к Вам вопрос.
Ticker работает и с ESP32?
Вопрос связан с тем, что похоже, я все-таки уперся в проблемы с памятью в ESP8266.
Например при добавлении слова в меню в скрипте не включается сервер WiFi.
Здесь подробное описание в целом. https://disk.yandex.ru/d/-LVTckepSxbANgДа. Работает. И автор библиотеки то-же.
P.S. Но в случае с ESP32 я бы посоветовал работать уже с FreeRTOS.
И здесь хорошо, с примерами, описано. Для ESP32 чуть синтаксис местами будет отличаться.Здесь подробное описание в целом. https://disk.yandex.ru/d/-LVTckepSxbANg
Спасибо за хорошие новости.Да. Работает. И автор библиотеки то-же.
P.S. Но в случае с ESP32 я бы посоветовал работать уже с FreeRTOS.
Эту пробовали?Однако пролет. Не понимает ESP32 этот Ticker.
Да и в самом Ticker.h черным по белому:
Copyright (c) 2014 Ivan Grokhotkov. All rights reserved.
This file is part of the esp8266 core for Arduino environment.
Надо сначала нужные исходники найти. У меня три куча ESP32 в ардуине торчало, пришлось всё вычищать, т.к. они мешали обновлению.Просто надо не боятся заходить в исходники arduino. Там не кусают. Открываем *.h и *.cpp билиотек, читаем код - многие вопросы сами собой отпадают.
if (MODE != 0) digitalPinToInterrupt(SINCHRO);
Вот так надоНадо сначала нужные исходники найти. У меня три куча ESP32 в ардуине торчало, пришлось всё вычищать, т.к. они мешали обновлению.
Но на этом не закончилось.
К примеру, вот что ему не нравится в
Пишет:Код:if (MODE != 0) digitalPinToInterrupt(SINCHRO);
second operand of conditional expression has no effect [-Werror=unused-value]
Однако проблема.Эту пробовали?
#include "Ticker.h"
Ticker timer0;
Ticker timer1;
void IRAM_ATTR ISR_StartT1() {
timer0.once_ms(5, ISR_StopT1);
}
void ISR_StopT1() {
digitalWrite(33, HIGH);
timer1.once_ms(1, ISR_StartT2);
}
void ISR_StartT2() {
digitalWrite(33, LOW);
}
void setup() {
pinMode(27, INPUT);
pinMode(33, OUTPUT);
attachInterrupt(digitalPinToInterrupt(27), ISR_StartT1, CHANGE);
}
void loop() {
;
}