ESP8266 прерывания

Контроллеры на основе ESP8266
Ответить
Vibe
Рядовой
Сообщения: 12
Зарегистрирован: 27.06.2019{, 21:28}
Репутация: 0
Имя: Стас

ESP8266 прерывания

#1

Сообщение Vibe » 26.07.2019{, 21:28}

ни как не могу найти инфо как на этом модуле подключить скоростной счетчик. В боке есть выбор любого пина, но при заливке на ESP, плата постоянно перегружается. пробовал ставить задержку начала работы. перегружается ровно на эту задержку. еще пробовал 433 WL101-341 плату прикрутить, та же беда. не работает и все. пользовательские блоки вешают его на прерывание которого в описании модуля нет 0 или 1.
подскажите что тут я недопонимаю?
ардуинку суда добавлять, нет смысла, модуль должен справляться с задачей.

Vibe
Рядовой
Сообщения: 12
Зарегистрирован: 27.06.2019{, 21:28}
Репутация: 0
Имя: Стас

ESP8266 прерывания

#2

Сообщение Vibe » 27.07.2019{, 17:15}

проверил на двух разных 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 секунды:
может так...
СпойлерПоказать
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;
}

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ESP8266 прерывания

#3

Сообщение ecoins » 27.07.2019{, 18:20}

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

Vibe
Рядовой
Сообщения: 12
Зарегистрирован: 27.06.2019{, 21:28}
Репутация: 0
Имя: Стас

ESP8266 прерывания

#4

Сообщение Vibe » 28.07.2019{, 09:26}

спасибо за ответ,
дело не в загрузке. плата WeMos Mini и nodemcu. они рабочие, и скетч грузится при подключений. проверяю дописав код мигания светодиода. к пинам не подключал ничего. держу на usb проводе в воздухе. диод мигает ровно столько сколько прописал паузу на задержку начала работы скоростного счетчика. если удаляю его блок, все начинает работать как нужно.
Вложения
speed.JPG
Последний раз редактировалось Vibe 29.07.2019{, 21:13}, всего редактировалось 1 раз.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ESP8266 прерывания

#5

Сообщение ecoins » 28.07.2019{, 12:09}

Вы все же попробуйте сменить пин led с D4 на D5.

Vibe
Рядовой
Сообщения: 12
Зарегистрирован: 27.06.2019{, 21:28}
Репутация: 0
Имя: Стас

ESP8266 прерывания

#6

Сообщение Vibe » 29.07.2019{, 21:08}

я наверно что то не до понимаю, но могу уверить что проверил все ноги и даже с минимальным кодом. скоростной счетчик на ESP не работает!!!
проверял прям так как на картинках.
может кто то подскажет как обойти этот счетчик другими методами?
Вложения
speed2.JPG
speed2.JPG (29.93 КБ) 826 просмотров
speed1.JPG
speed1.JPG (32.87 КБ) 827 просмотров

Ответить

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