1

我有一个运行 Xojo 程序的树莓派 3。

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

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

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

该程序对两个流量传感器都有效,但一次只能一个。即,如果我更改输入引脚并再次运行程序,它就可以工作。

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

我尝试过使用两个 GPIO 模块和两个自定义的“InterruptModule”模块,但它仍然计算首先定义的传感器下的输入。

在这里查看我的尝试。

Xojo代码截图

4

1 回答 1

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

在这个例子中,每个引脚中断都有自己的回调方法,使用不同的代码来处理每个引脚。

于 2020-07-18T21:56:52.483 回答