如果GPIO没有及时切换,则会断开循环

时间:2016-08-09 19:54:51

标签: python timer raspberry-pi interrupt gpio

我正在将一些输入更改为带有继电器的设备,我希望在某些时候可以破坏固件。问题是,这会发生什么时候?

因此,为了确定固件是否损坏,我正在监控正常运行期间正常闪烁的一些LED。我知道当固件中断时,它们将锁定它们当前所处的状态。因此,我的好主意是将简单的信号发送回Raspberry Pi并观察GPIO的变化状态。如果我看到状态发生变化,那么继续前进并翻转继电器......然后看看LED并确保它们仍在闪烁......冲洗,重复。

但是,我通常会用中断或C中的某些内容来检查这个,但我是用Python编写的......

处理此问题的Python方法是什么?我知道如果我在2秒左右没有看到任何眨眼,那么测试就结束了,但我不知道如何在不调用像sleep这样的东西的情况下这样做...我不会能够观察引脚的变化。

1 个答案:

答案 0 :(得分:0)

gpio模块创建一个线程回调函数,每次检测到上升(或下降等)边缘时都会触发。

然后在此函数中使用signal调用signal.alarm(),以便在引脚发生变化时重置警报。

最后使用signal.signal()注册函数,以便在警报未及时重置时发生的情况(即固件已损坏)

如果您不幸地使用Windows,这将无法工作......如果您

,则需要使用线程实现自己的报警系统