나는 파이썬을 사용하여이 코드를 작성했습니다. 하지만 코드에 어려움을 겪고 있습니다. while 루프가 중단되지 않습니다.While 루프가 실시간 업데이트되지 않습니다
w=1
z=0
def auto_1(w,z):
w=1
z=0
return w,z
def manual_1(w,z):
w=0
z=1
return w,z
GPIO.add_event_detect(Manual, GPIO.RISING, callback=lambda *i: manual_1(w,z), bouncetime=300)
GPIO.add_event_detect(Auto, GPIO.RISING, callback=lambda *i: auto_1(w,z), bouncetime=300)
while w==1:
print("Auto")
pfr_mains_1(PFRMains,PFRGen,GenStartOut,MainsCont,GenCont)
pfr_mains_0(PFRMains,PFRGen,GenStartOut,MainsCont,GenCont)
time.sleep(3)
if w==0:
break
"수동"이벤트가 감지 되더라도 while 루프가 중단되지 않습니다. 코드는 제대로 실행되지만 이벤트가 감지되면 루프가 중단되지 않습니다. w 값이 초기 값에서 업데이트되지 않는 것 같습니다. 그러나 나는 무엇을 해야할지 전혀 모른다. 이걸 도와주세요. 고마워요.
어떻게'w'가 바뀔 것으로 기대합니까? 루프에서 함수 호출을위한 매개 변수로 사용하기 만하면됩니다. – Matthias
초기 변수 선언 없이는 w 및 z가 정의되지 않았 음을 오류 메시지로 표시합니다. 그래서 초기 조건을 부여했습니다. 나는 파이썬 전문가가 아니다. 그래서 나는 그걸 어떻게 할 수 없는지 모르겠습니다. 감사합니다 –