gpt4 book ai didi

c++ - Arduino 上一次中断的多个触发器

转载 作者:太空宇宙 更新时间:2023-11-04 11:25:15 26 4
gpt4 key购买 nike

我正在研究 Arduinos,我想使用中断来使用 旋转编码器。但我想将中断代码减少到最少。

我可以在单个中断上使用多个触发器吗?

我想替换我的实际代码:

attachInterrupt(0, ChangeA, CHANGE);

类似的东西

attachInterrupt(0, FailingA, FAILING);
attachInterrupt(0, RisingA, RISING);

这可能吗?

最佳答案

不,不完全可能。外部中断配置为仅对内部的一种可能性使用react。

您可以做的一件事是使用CHANGE 中断服务例程并在 ISR 开始时测试引脚的值以执行 FallingA()RisingA().

这里有一个潜在的问题。在您测试它之前,该引脚可能已经再次更改,因此触发中断的中断可能已经下降,并且您的测试确定它正在上升。防止两次快速中断的一种方法是检查标志是否仍然设置。如果在中断开始时它应该被清除,如果它被设置然后再次发生变化。没有切实可行的方法来防止三种快速变化。

如果您真的想使用两个独立的 ISR,是否有额外的引脚可用?如果是这样,您只需将引脚连接在一起,然后在一个引脚上运行 FALLING ISR,在另一个引脚上运行 RISING ISR。

关于c++ - Arduino 上一次中断的多个触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26895497/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com