Questo forum utilizza i cookies
Questo forum fa uso di cookie per migliorare l'esperienza utente. I cookie sono piccoli file di testo memorizzati sul tuo browser. I cookie impostati dal forum possono essere utilizzati solo su questo sito e non costituiscono rischio per la sicurezza, vengono utilizzati unicamente per memorizzare le tue preferenze. Navigando sul sito accetti che RaspberryItaly installi i cookie sul tuo browser.
Per maggiori informazioni consulta l'informativa sui Cookie di RasberryItaly

Un cookie verra memorizzato nel browser indipendentemente dalla scelta per evitare che questa domanda ti venga posta di nuovo. Sarai in grado di modificare le impostazioni dei cookie in qualsiasi momento utilizzando il link nel footer.
  • Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
programma rpi3 python l blocca esecuzione

python blocca l'esecuzione programma
#1
Ciao a tutti,

sto provando a fare eseguire python alcune istruzioni ricevute tramite ethernet per accendere e spegnere alcune uscite ma dopo un certo punto si blocca l'esecuzione senza però terminare il processo.

Questo è il mio programma test

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(True)
GPIO.cleanup()
import time

from threading import Timer

PinRun=3
GPIO.setup(PinRun,GPIO.OUT)



prova=False

def Lampeggio ():
    global prova
    prova=not prova
    GPIO.output(PinRun,prova)
#    time.sleep (1)
    Timer(0.2,Lampeggio).start()

Timer(0.2,Lampeggio).start()

Dove ho sbagliato?

Grazie
Risposta
#2
Lanci il programma anteponendo sudo?

Qualche consiglio (che non riguarda la funzionalità del programma) : gli import, mettili tutti all' inizio, così come la definizione delle funzioni.
Usa Gpiozero per gestire il GPIO, molto più semplice e moderna.

Giusto per provare, ho commentato la prima parte del tuo programma (la parte del GPIO) e invece di azionare il pin, ho messo un print per provarlo al volo sul pc.
il programma funziona, senza bloccarsi: (stampa true e false alternati in continuo).
Anche se lo trovo decisamente contorto e macchinoso ;-)
Ma come detto, non suo RPi.GPIO
il GPIO 3 è usato anche con l'I2C, forse il problema sta lì? Hai provato a cambiare pin?

Con Gpiozero, l'esempio (didattico) da manuale è
Codice:
from gpiozero import LED
from time import sleep

led = LED(17)   # numero del pin

while True:  #ciclo infinito
    led.on()
    sleep(1)
    led.off()
    sleep(1)

quello pratico è:
Codice:
from gpiozero import LED
from signal import pause

led = LED(17)   # numero del pin
led.blink()

pause()
Risposta
#3
Ciao,

io ho provato a fare il print screen su terminale di raspberry ed effettivamente non si blocca mai, quindi può essere un problema di libreria. Ho provato a cambiare il pin ma si blocca sempre, dopo circa 2,5 ore.

Ho provato anche a usare GPIO zero con il programma ad uso didattico, ma quello si blocca dopo 10-15 minuti. Non ho altre idee...
Risposta
  


Vai al forum:


Navigazione: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect