如何解决如何使用arduino在ESP8266上设置中断优先级
我正在尝试通过arrachInterrupt(pin,ISR1,RISING)将硬件中断与PIN一起使用进行过零检测,并与timer1中断timer1_attachInterrupt(ISR2)一起触发,每50微秒触发一次。
现在我面临的问题是有时代码无法按预期工作。我的猜测是,ISR1和ISR2都是在同一点触发的,而其中一个ISR没有得到执行。 所以我想将ISR1优先于ISR2。
这是我的设置配置: Arduino IDE-1.8.1, esp8266 core 2.7.4, 节点MCU 1.0硬件。
这是我的代码块
void ICACHE_RAM_ATTR zero_cross_detect()
{
// code
}
void ICACHE_RAM_ATTR onTimerISR(void)
{
// code
}
void setup(){
attachInterrupt(12,zero_cross_detect,RISING);
timer1_attachInterrupt(onTimerISR);
timer1_enable(TIM_DIV16,TIM_EDGE,TIM_LOOP);
timer1_write(100);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com(将#修改为@)