esp8266 вылетает с ошибкой
- Войдите на сайт для отправки комментариев
Вс, 25/03/2018 - 16:45
esp8266 Wemos D1 mini, Arduino IDE 1.8.5, ESP8266 core for Arduino 2.4.1
Скетч:
[code]
void setup() {
Serial.begin(9600);
}
void loop() {
unsigned long t = micros();
for (long i = 1; i <= 2000; i++) {
delayM(1000);
}
t = micros() - t;
Serial.print(" t = "); Serial.print(t); Serial.println(" us");
}
void delayM(long micr) {
unsigned long tim = micros();
do {}
while (micros() - tim < micr);
}
[/code]
Результат:
t = 2001684 us t = 2001685 us t = 2001684 us Soft WDT reset ctx: cont sp: 3ffef750 end: 3ffef950 offset: 01b0 >>>stack>>> 3ffef900: 3ffe8868 00000001 3ffee8fc 402022cc 3ffef910: 3fffdad0 001e8b14 3ffee8fc 40202072 3ffef920: 00000000 00c8bc9c 0000000e 402020a8 3ffef930: 3fffdad0 00000000 3ffee918 40202520 3ffef940: feefeffe feefeffe 3ffee930 40100108 <<<stack<<< H⸮⸮⸮⸮⸮⸮⸮
Что я делаю не так?
Что я делаю не так?
сложно сказать, скетч приведен не полностью. В часности, где включается WDT?
Скетч приведен целиком и полностью.
На другом форуме мне подсказали решение:
"Поставте в цикл do{ yield(); }"
После этого зависать перестало, но причину я так и не понял.
Причина в том что в ESP код не "голый" а с дополнительными библиотеками, которые не отключаются. Вот они то и решают что что-то зависло, когда пустой цикл крутите.