Hallo Zusammen,
ich stehe vor einem Problem und komme leider nicht weiter.
Ich habe einen Taster angeschlossen und dieser soll bei Tastendruck eine Funktion ausführen.
Einmal die CPU Temp im Terminal ausgeben und beim nächsten Tastendruck die Zeit.
Ich würde aber die Zeit gern in einer Schleife laufen lassen, damit diese immer aktuell ist. Wenn ich aber wieder die Taste drücke, soll wieder die CPU Temp angezeigt werden.
Anbei ist der Code.
Code
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
programm = 1
def main():
while(True):
taster()
time.sleep(0.3)
def temp():
tempFile = open("/sys/class/thermal/thermal_zone0/temp")
cpu_temp = tempFile.read()
tempFile.close()
# return float(cpu_temp) / 1000
print ("CPU Temp: " + cpu_temp)
def zeit():
zeit = time.strftime("%A %d.%m. %H:%M:%S")
print ("Akt. Uhrzeit: " + zeit)
def taster():
global programm
if (GPIO.input(17) == 0) and programm == 1:
temp()
programm = 2
elif (GPIO.input(17) == 0) and programm == 2:
while(True):
zeit()
time.sleep(1)
programm = 1
if __name__ == '__main__':
main()
Alles anzeigen
Wenn ich die Schleife bei der Zeit weg lasse, dann funktioniert alles auch sauber.
Sobald ich aber die Schleife bei der Zeit wieder aktiviere, komme ich aus der Schleife nicht mehr per Tastendruck heraus.
Vielleicht kann mir hier jemand helfen, oder mir sagen, wie ich es schlauer machen kann.
Danke