Xojo检测来自2个输入的输入和中断。 (Raspberry Pi)

时间:2017-12-06 10:29:20

标签: raspberry-pi gpio xojo

我有一个覆盆子pi 3运行在Xojo制作的程序。

我的目标是有两个流量传感器,显示流经屏幕上每个传感器的水量。

我有一个适用于一个流量传感器的程序,它使用GPIO库和一个名为“InterruptModule”的自定义模块。我按照教程制作了这个程序。

教程:https://einhugur.com/blog/index.php/xojo-gpio/connecting-button-with-gpio-and-using-interupts/#comment-14

此程序可成功用于两个流量传感器,但一次只能使用一个。即如果我更改输入引脚并再次运行程序,则可以正常工作。

但是,当我尝试将两者结合起来时,它的响应无法区分两个输入。

我尝试过两个GPIO模块和两个自定义“InterruptModule”模块,但它仍然会根据首先定义的传感器对输入进行计数。

在这里看看我的尝试。

Screenshot of Xojo code

1 个答案:

答案 0 :(得分:0)

区分两个中断的一种方法是创建两个单独的回调方法。

示例:

Const kPin = 14
If GPIO.WiringPiISR(kPin, GPIO.EDGE_RISING, Addressof InteruptModule.ButtonDownInterupt1) = -1 then
MsgBox "Could not register for Interupt1 on kPin14"
End If

Const kPin = 18
If GPIO.WiringPiISR(kPin, GPIO.EDGE_RISING, Addressof InteruptModule.ButtonDownInterupt2) = -1 then
MsgBox "Could not register for Interupt2 on kPin18"
End If

在此示例中,每个引脚中断都将具有自己的回调方法,该回调方法具有与每个引脚一起使用的不同代码。