ESP8266 прерывания

Контроллеры на основе ESP8266
Ответить
Vibe
Рядовой
Сообщения: 12
Зарегистрирован: 27 июн 2019, 21:28
Имя: Стас

ESP8266 прерывания

Сообщение Vibe »

ни как не могу найти инфо как на этом модуле подключить скоростной счетчик. В боке есть выбор любого пина, но при заливке на ESP, плата постоянно перегружается. пробовал ставить задержку начала работы. перегружается ровно на эту задержку. еще пробовал 433 WL101-341 плату прикрутить, та же беда. не работает и все. пользовательские блоки вешают его на прерывание которого в описании модуля нет 0 или 1.
подскажите что тут я недопонимаю?
ардуинку суда добавлять, нет смысла, модуль должен справляться с задачей.
Vibe
Рядовой
Сообщения: 12
Зарегистрирован: 27 июн 2019, 21:28
Имя: Стас

ESP8266 прерывания

Сообщение Vibe »

проверил на двух разных ESP, скечь пустой, только счетчик и отправка в юарт.
ответ такой:
ISR not in IRAM!
Abort called
>>>stack>>>
ctx: cont
sp: 3ffffdb0 end: 3fffffc0 offset: 01b0
3fffff60: 0016c821 00000000 3ffee250 4020145c
3fffff70: 00003381 00000001 3ffee250 3ffee2a8
3fffff80: 3fffdad0 00000000 3ffee230 401003da
3fffff90: 00000000 00000000 3ffee230 402010fc
3fffffa0: 3fffdad0 00000000 3ffee278 40201904
3fffffb0: feefeffe feefeffe 3ffe84f4 401006c5
<<<stack<<<
1» љщJш0
у меня ни каких мыслей не появляется, может кто то подскажет куда дальше копать?

Отправлено спустя 6 минут 4 секунды:
может так...
[spoiler]
extern "C" {
#include "user_interface.h";
}
bool _stou1 = 0;
bool _SCT_1_StDelSt = 0;
unsigned long _SCT_1_StDelTime = 0UL;
int _SCT_1_CPOP = 0;
void setup()
{
Serial.begin(9600);
pinMode(2, INPUT);
_SCT_1_StDelTime = millis();
}
void loop()
{

//Плата:1
//Наименование:Pagr
if(! _SCT_1_StDelSt) { if (_isTimer(_SCT_1_StDelTime, 5000)) {
_SCT_1_StDelSt = 1;
attachInterrupt(digitalPinToInterrupt (2), _SCT_1positiveCoutFunction, RISING );
}}
if (!(0)){if (!_stou1){Serial.println(_SCT_1_CPOP); _stou1=1;}} else {_stou1=0;}

}
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
}
void _SCT_1positiveCoutFunction()
{ _SCT_1_CPOP = _SCT_1_CPOP +1;
} [/spoiler]
ecoins
Полковник
Сообщения: 4010
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 155 раз

ESP8266 прерывания

Сообщение ecoins »

Проверил Ваш скетч, и он у меня работает - кнопочку нажимаю на D4 - светодиод загорается, отпускаю - тухнет. :smile427:
Проверял на NodeMCU-0.9
По Вашей ситуации - я её понимал до испытаний, но все же промоделировал - примерно так как Вы написали - перезагрузка, сообщения немного отличаются.
Теперь о причинах - они связаны с особенностью загрузки программы в ESP8266 при включении питания.
Требования к загрузке ESP8266 загруженного скетча: состояния пинов должны быть D3(0)=1; D4(2)=1; D8(15)=0.
В Вашем случае Ваша кнопка (или вход нормально замкнут) и потому ESP8266 не может загрузить скетч.
Поставьте нормально открытый контакт на D4(2) - куда Вы подключили кнопку, и будет работать.
А лучше выбрать другой пин.
Успехов.
Vibe
Рядовой
Сообщения: 12
Зарегистрирован: 27 июн 2019, 21:28
Имя: Стас

ESP8266 прерывания

Сообщение Vibe »

спасибо за ответ,
дело не в загрузке. плата WeMos Mini и nodemcu. они рабочие, и скетч грузится при подключений. проверяю дописав код мигания светодиода. к пинам не подключал ничего. держу на usb проводе в воздухе. диод мигает ровно столько сколько прописал паузу на задержку начала работы скоростного счетчика. если удаляю его блок, все начинает работать как нужно.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Vibe 29 июл 2019, 21:13, всего редактировалось 1 раз.
ecoins
Полковник
Сообщения: 4010
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 155 раз

ESP8266 прерывания

Сообщение ecoins »

Вы все же попробуйте сменить пин led с D4 на D5.
Vibe
Рядовой
Сообщения: 12
Зарегистрирован: 27 июн 2019, 21:28
Имя: Стас

ESP8266 прерывания

Сообщение Vibe »

я наверно что то не до понимаю, но могу уверить что проверил все ноги и даже с минимальным кодом. скоростной счетчик на ESP не работает!!!
проверял прям так как на картинках.
может кто то подскажет как обойти этот счетчик другими методами?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ответить

Вернуться в «ESP8266»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя