每个中断都需要自己的功能吗?

问题描述 投票:-1回答:1

我目前正在计划一个项目,其中包括多个旋转编码器,我想将这些编码器连接起来以中断引脚,以可靠地从引脚获取输入。我希望每个编码器都做基本上相同的事情,但是取决于打开哪个编码器,代码中的某些变量将不得不更改。

我必须为它们每个编写一个单独的函数吗?不可能从attachInterrupt传递参数(在这种情况下为中断引脚号)给被调用的函数,除了编写5个函数(rotary1()rotary2()...),我没有看到其他可行的选择。 )包含完全相同的代码,但更改了一些变量。

我想到的另一种选择是调用一个“中间”函数,该函数检查当前相关的引脚,然后在传递此信息的情况下调用旋转函数,但这不是一个很好的解决方案,可能会减慢整体速度处理很多。我真的不想因为要旋转编码器而单独检查,因为该信息已经存在,我只是不知道如何访问它。

如果有更多经验的人可以在这里为我指出正确的方向,我将不胜感激,因为即使我是一个相对的初学者,多次编写相同的代码,这对我来说还是非常错误的。

我目前正在计划一个项目,其中包括多个旋转编码器,我想将这些编码器连接起来以中断引脚,以可靠地从引脚获取输入。我希望每个编码器都做基本上相同的事情...

c++ arduino microcontroller interrupt interrupt-handling
1个回答
0
投票

如您所发现,您需要的ISR与引脚数一样多。但是您不需要复制其中的代码。

© www.soinside.com 2019 - 2024. All rights reserved.