首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PIGPIO去抖动

PIGPIO去抖动
EN

Stack Overflow用户
提问于 2015-04-17 20:34:28
回答 1查看 1.2K关注 0票数 0

我尝试过使用pigpio库来做去反弹,但没有成功

代码语言:javascript
复制
import pigpio
captureFlag=1
pi=pigpio.pi()
def ImgCap(gpio.level.ticks):
    global captureFlag
    if captureFlag==0:
        print "OFF"
    if captureFlag==1:
        captureflag=0
        print "call back"
        for x in xrange (1000000):
              x=x+1
        print x
        captureflag=1
def main():
      calf=pi.callback(4,pigpio.RISING_EDGE,ImgCap)
      while True:
           pass
if __name__=='__main__'
      main()

这不是一个成功的回调函数,它从不打印,而是不断地打印回调和x值。我做错了什么?如何正确地编码去抖动。还有其他可能的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-04-18 04:01:04

你的程序永远不会打印"Off“,因为当回调被触发时,你正在测试的变量永远不会被设置为0。

我建议你看一下标准的Raspbian库(内置在RPi.GPIO中),因为它本机处理开关反弹,并且允许你使用GPIO.BOTH在一个函数中设置上升和下降沿的回调。

代码语言:javascript
复制
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.IN)

def ImgCap(channel):
    print("Flag Captured?")

GPIO.add_event_detect(4, GPIO.BOTH, callback=ImgCap, bouncetime=200)

while True:
    pass

请参阅http://raspi.tv/2014/rpi-gpio-update-and-detecting-both-rising-and-falling-edges

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29699375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档