Ich habe ein Projekt, das eine Raspberry Pi, die Dothat 16x2 LCD-Display und einige Python-Code beinhaltet. Ich versuche im Wesentlichen eine dynamische While-Schleife zu erstellen, die Informationen auf dem LCD anzeigt. Ich bin auch eine Funktion hinzuzufügen versuchen, die durch Drücken einer der Touch-Tasten (Referenz: https://github.com/pimoroni/dot3k/blob/master/python/REFERENCE.md) die while-Schleife brichtPython - Breaking While-Schleife mit Funktion (Raspberry Pi)
Das ist, was ich bisher habe:
import dothat.lcd as l
import dothat.backlight as b
import dothat.touch as t
from time import sleep
import signal
import os
def main():
i=0
k=0
while True:
l.clear() # Clear LCD screen
b.hue(1.5) # Set background color
l.set_cursor_position(0, 1) # Set cursor position on LCD
l.write("%s" % k) # Write variable "k" to LCD
@t.on(t.CANCEL) # When CANCEL button is pressed then go to function
def cancel(ch, evt):
i=1 # Set variable "i" as 1
return
if i == 1:
break
k=k+1
sleep(1)
l.clear() # Clear LCD screen
b.off() # Turn the LCD Backlight off
cmd='pkill python' #
os(cmd) # Kill all python processes
signal.pause()
main()
Die while-Schleife läuft, aber Es bricht nicht, wenn die Taste gedrückt wird. Ideen?
Können Sie mehr Details über das Problem? Läuft es nicht/wirft einen Fehler, oder hört es einfach nicht auf? –
Die While-Schleife läuft, aber sie bricht nicht, wenn die Taste gedrückt wird. – Pigface333
Ich kenne diese Annotation nicht. Sind Sie sicher, dass die Methode 'cancel' tatsächlich verwendet wird? Haben Sie versucht, dort einen 'Print' hinzuzufügen? Außerdem glaube ich, dass _if_ es verwendet wurde, würde es ein neues lokales "i" erstellen, anstatt das "i" zu ändern, das im umschließenden Bereich existiert. –