IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

tourne en rond sur un test d'interruption


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2023
    Messages : 2
    Par défaut tourne en rond sur un test d'interruption
    Bonjour, sur Raspberry avec un bouton poussoir en broche 16 avec le script ci-dessous: J'ai bien les prints de la routine d'interruption qui s'affichent à chaque action sur le poussoir ('interruption1', 'interruption2' et 'True') mais process_ny_callback() n'est jamais activé par la boucle while True et je n'ai donc jamais le print : 'Interruption détectée sur la broche 16'
    Merci de votre aide à un débutant en python.
    -------------------------------------------------------
    import RPi.GPIO as GPIO


    # variable globale qui sera vue dans toutes les fonctions
    flag_callback = False

    def init():
    # configuration de la broche 16 en entree
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)
    # definition de l'interruption
    GPIO.add_event_detect(16, GPIO.RISING, callback=my_callback, bouncetime=300)
    # initialisation du flag
    flag_callback = False
    print(flag_callback)


    def my_callback(self):
    # function qui sera appelé lorsque le programme sur interrompu
    print('interruption1')
    flag_callback = True
    print('interruption2')
    print(flag_callback)


    def process_ny_callback():
    print("Interruption détectée sur la broche 16")

    if __name__ == '__main__':

    # 1- initiation de la l'interruption
    init()
    # 2- boucle infini = tache principale
    while True:
    # 3- si une interruption c'est produite alors on lance le traitement c
    # adéquat
    if flag_callback == True:
    process_ny_callback()

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 067
    Par défaut
    Pour que la variable flag_callback soit globale, il faut le déclarer dans les fonctions qui la modifient.

  3. #3
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2023
    Messages : 2
    Par défaut Merci
    j'ai appris quelque chose. Merci pour cette aide rapide!

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 814
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par dubitom Voir le message
    j'ai appris quelque chose.
    portée et visibilité des variables
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Fonction, je tourne en rond sur la sortie . . .
    Par SQLpro dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 13/12/2008, 13h34
  2. [XPATH] récupérer le positon() sur un test
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 30/09/2005, 17h20
  3. Prog qui tourne en rond :-(
    Par FranckDev dans le forum CORBA
    Réponses: 2
    Dernier message: 07/09/2005, 13h50
  4. Réponses: 4
    Dernier message: 25/04/2005, 15h48
  5. Je tourne en rond....
    Par Ol dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/02/2005, 07h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo