Problem mit Druckknopf am Himbeer-PI

7

Ich arbeite derzeit mit Raspberry Pi . Ich habe ein Push-Button- Programm (Switch) mit Python implementiert . Wenn ich jedoch den Schalter drücke, sind ifZustand trueund Daten gespeichert, aber wenn ich den Schalter loslasse, bleibt mein Programm hängen. Warum?

Mein Skript:

#!/usr/bin/python

import RPi.GPIO as GPIO

switch_1 = 17

GPIO.setmode(GPIO.BCM)

GPIO.setup(switch_1, IN.OUT)

while(True):
    sw1_status = GPIO.input(switch_1)

    print 'Switch_1 : ', sw1_status

    if sw1_status == True:
        print ('Data stored')
        while(sw1_status != 0): // here my program stuck.
            pass
rsp
quelle
Das ist ziemlich ordentlich.
Wogsland

Antworten:

9

Ihr Programm steckt fest, weil Sie eine Endlosschleife darin erstellt haben. Bis Sie an der while(sw1_status != 0)Linie ankommen, sw1_statusist dies garantiert Trueund True != 0wird immer ausgewertet True.

Vielleicht bedeutet Sie wartet , bis die Taste losgelassen wird, in welchem Fall Sie aktualisieren möchten sw1_statusin der Schleife durch den Ersatz passmit sw1_status = GPIO.input(switch_1).

Dmitry Grigoryev
quelle
1

Auch habe ich benutzt

while((GPIO.input(switch_1)) == 1):
              pass

anstatt

while(sw1_status != 0): // here my program stuck.
            pass

Es funktioniert gut.

rsp
quelle