проверил на двух разных 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;
}