ESP32同时使用blinker和外部中断会报错-Arduino中文社区 - Powered by Discuz! Archiver

samyujie 发表于 2022-3-31 00:37

ESP32同时使用blinker和外部中断会报错

本帖最后由 samyujie 于 2022-3-31 01:01 编辑

我一行一行代码排除,最终确定这3行代码就会报错:Guru Meditation Error: Core1 panic'ed (Cache disabled but cached memory region accessed)
void do_io_btn(){
}
void setup() {
Blinker.begin(auth.c_str(), ssid.c_str(), pswd.c_str());
pinMode(io_btn, INPUT);
attachInterrupt(digitalPinToInterrupt(io_btn), do_io_btn, CHANGE);
}
void loop() {
Blinker.run();
}


以上代码只是运行了blink外加一个外部中断,并且外部中断的函数是空的。中断触发频率高于230次每秒就会报错。
如何解决?


wdrvk 发表于 2022-3-31 01:00

ICACHE_RAM_ATTR中断加前缀

samyujie 发表于 2022-3-31 01:09

wdrvk 发表于 2022-3-31 01:00
ICACHE_RAM_ATTR中断加前缀

问题解决了,感谢大佬!!!:'(

奈何col 发表于 2022-3-31 07:37

和blinker无关,请看8266 arduino sdk文档,最新版本加IRAM_ATTR
Reference — ESP8266 Arduino Core documentation (arduino-esp8266.readthedocs.io)
页: [1]
查看完整版本: ESP32同时使用blinker和外部中断会报错