this과 같은 웹에서 GPIO 인터럽트 설명서를 읽었습니다. 나에게 남겨진 질문이 하나 있습니다. GPIO.add_event_detect(<PIN>, <GPIO.EDGE>, callback=<some callback function>, bouncetime=<int>)
을 파이썬 스크립트에 사용하려면이 스크립트를 "끝없이"이 스크립트를 실행하기 위해 동일한 스크립트에 루프를 실행해야합니다. 콜백 루틴?Raspberry Pi3 - Python3 : GPIO.add_event_detect에 "while true"루프가 필요합니까?
더 명확히하겠습니다. 인터럽트 핸들러가 Pin6에 EDG 떨어지는 기다릴 수 있도록하는 while true:
루프를 가지고하는 것이 필요하다 또는 그냥 핸들러를 활성화하고 프로그램을 종료 - 그래서이 스크립트로
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(6, GPIO.OUT)
def my_interrupt_routine(channel):
#do something here
GPIO.add_event_detect(6, GPIO.FALLING, callback=my_interrupt_routine, bouncetime=200)
try:
while True:
pass
except KeyboardInterrupt:
#do something here
finally:
GPIO.cleanup()
을 : 내 스크립트는 다음과 같아야합니다 ? GPIO-Pin을 폴링하는 것과는 달리 인터럽트 핸들러를 사용하는 이점에 대해 많은 기사를 읽었 기 때문에이 질문을하고 있습니다. 그리고이 while true:
루프는 핀에서 폴링하는 것과 같이 나에게 거의 비슷하게 보입니다.
Java로 개발하는 데 익숙합니다. 여기서 인터럽트 처리기/수신기를 정의하고 다른 끝 부분에서 이벤트를 처리 할 수 있습니다. 파이썬에서는 작동하지 않는다고 가정합니다.