私はこのコードを、ラズベリーパイにpythonを使って書いています。しかし、私はコードに苦労しています。 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が定義されていないというエラーメッセージが返されます。それが私に初期条件を与えた理由です。私はPythonの専門家ではありません。だから私はそれをやるべきではない。ありがとう –