Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: pokračování programu po zavolání funkce

Aktivity
Avatar
Václav Nikel:5.4.2020 16:52

Ahoj, píšu program pro snímání rychlosti a její porovnávání.

#import
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)
GPIO.setup(16,GPIO.IN)

startTime = 0
counter = 0
obvod = 120
delta = 0

def speed (x):
    global counter
    if  counter == 0:
            global startTime
            startTime = time.time()
            counter = 1
            print("start")
    elif    counter == 1:
            global delta
            delta = (time.time() - startTime)
            print("rychlost je", obvod / delta, "cm/s")
            print(delta)
            print("konec měření")
            counter = 0
    return delta

GPIO.add_event_detect(16, GPIO.RISING, callback=speed,) #čekání na rozjezd (první impulz)
print("dále?")

funkce funguje, na vstupu 16 GPIO snímá vzestupnou hranu z hallovy sondy, vypočítá rychlost a vypíše výsledek.

Potřebuji, aby program pokračoval dále - příkaz print("dále") proběhne jen jednou, po spuštění programu a pak po ukončení funkce už ne.

Zkusil jsem: Problém jsem původně řešil cyklem while, a zjišťoval stejnou podmínku.

Chci docílit: Měření rychlosti a porovnávání s dalšími hodnotami.

 
Odpovědět
5.4.2020 16:52
Avatar
Jan Šesták
Člen
Avatar
Odpovídá na Václav Nikel
Jan Šesták:28.4.2020 9:49

Dobrý den, jsem v programování začátečník a zkušení poradí asi více. Tento kus kódu výše pouze zaregistruje Vaši funkci na náběžnou hranu, netuším jestli trvale a potom už nic - program končí. Zkuste doplnit o nekonečnou smyčku.

 
Nahoru Odpovědět
28.4.2020 9:49
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.