你好对话框,
我正在尝试制作一个遥控器,我想使用按钮中断。我正在使用以下代码:
gpio_registercallback(gpio0_irqn,app_button_press_cb);
gpio_registercallback(gpio1_irqn,app_button_press_cb);
gpio_enableirq(gpio_port_0,gpio_pin_6,gpio0_irqn,true,true,16);
gpio_enableirq(gpio_port_1,gpio_pin_1,gpio1_irqn,true,true,16);
这有效。我按下任一按钮,它将我发送到中断功能。
我的问题是,如果我想使用更多的按钮(我有至少6个),Irqn只有5个gpio中断(gpio0_irqn到gpio4_irqn),如何为更多按钮启用更多中断?
如果我将GPIO0_IRQN放在两个enable函数上,则仅启用最后一个按钮。
谢谢,
宇宙。
设备:
嗨cosmin,
如果您在设备中使用更多按钮,可以使用矩阵方案,因为GPIO中断有限,请检查远程或键盘参考设计,了解有关如何实现此操作的更多信息。或者您可以尝试的另一件事是,在中断(在ISR中)轮询指定的引脚(获取每个引脚的状态)。
谢谢mt_dialog.
你好mt_dialog,
我面临着同样的问题。我想使用8个按钮。IRQN只有5个GPIO中断(GPIO0_IRQN到GPIO4_IRQN),如何为更多按钮启用更多中断?
在您的评论中,您已提到“在中断(在ISR中)调查指定的引脚(获取每个PIN的状态)”。您能否详细解释这一点?
还详细解释了“键盘参考设计”。
感谢致敬,
Ruchi.
嗨Ruchi Patel,
正如已提及的那样,使用多个按钮的参考设计是键盘和遥控器参考设计,这些参考设计包括有关其功能的文档和应用程序说明,因此您可以查看这些文档并检查有关其实现的详细信息并查看有关其实现的详细信息UM-B-009,UM-B-037)。关于我提到的,如果你不想实现矩阵方案,以便有多个按钮,你可以在中断发生并读取相应的端口寄存器时触发功能,以检查哪些引脚高或低电平将能够知道按下了哪个按钮。
谢谢mt_dialog.