【发布时间】:2013-08-09 23:28:07
【问题描述】:
我在 Raspberry Pi(嵌入式处理器板)上的 Raspbian(一种 linux)上使用 Python 来监控 GPIO 输入。
请参阅下面我的代码的简化版本。我在 python 脚本中有一个无限循环,等待 GPIO i/p 上发生某些事情。这是正确的方法吗? IE。这是否意味着 CPU 正在全力运行,只是围绕这个循环,没有 CPU 周期用于其他东西?特别是因为我需要并行运行其他东西(例如浏览器)。
如果 CPU 忙于做其他事情并且 GPIO i/p 发生变化,会发生什么情况? GPIO 事件是存储在某处以便最终得到服务,还是只是丢失了?
有更好的方法吗?
(对于您的答案,请注意我是 linux 新手,v. python 和实时编程新手)
#!/usr/bin/python
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)
def ButtonHandler(channel):
print "Button pressed " + str(channel)
# do stuff here
GPIO.add_event_detect(16, GPIO.FALLING, callback=ButtonHandler, bouncetime=200)
while True:
pass
【问题讨论】:
-
谢谢@Ebbe M. Pedersen 这就是我所追求的
标签: python real-time raspberry-pi