Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Arduino] Conflit interruption/Serial()

    27 juillet 2015 à 17:54:21

    Bonjour,

    après 2 ans je me remets à l'Arduino, je recommence doucement avec de petits montages comme ici, j'utilise plusieurs boutons branchés sur une entrée analogique de l'Arduino et avec la Pin 2 de l'arduino j'applique une interruption pour savoir si un bouton est pressé (rien de trop compliqué jusqu'ici^^).

    Donc je fais mes tests en affichant les valeurs avec un petit Serial.println() dans le loop() et je vois que tout marche bien :) (donc pourquoi venir poser une question si tout va bien ? x) )

    Et bien voilà, si je retire le Serial.println() du loop et bien mon interruption ne marche plus comme elle devrait, en fait je suis obligé de rester appuyé sur un bouton jusqu'à ce que le code trouve un Serial.println() dans une autre fonction du programme pour déclencher l'interruption... oO

    void setup()
    {
        pinMode(INTERRUPT0, INPUT);
        
        Wire.begin(); // Rejoins le bus I2C (en maître)
        
        Serial.begin(VITESSESERIAL); // Serial à 9600
        Serial.setTimeout(4);
        
        lcd.createChar(0, smileySouri); //apprend le caractère à l'écran Lcd
        lcd.begin(20,2); //utilisation d'un écran 16 colonnes et 2 lignes
        
        attachInterrupt(0, boutonPresse, FALLING);
        
        tempsLcdWorkout = millis();
        tempsLcdHeure = millis();
        tempsComArduinos = millis();
    }
    
    void loop()
    {
        genererHeure(); // Génère l'heure et calcule la correction de décalage dans le temps
        
        affichageLcd(); // Affiche le bon menu sur l'écran Lcd
        
        communication(); // Communication des 2 Arduinos
        
        //Serial.println(" "); // ----> Le serial qui pose problème lorsque je le supprime
    }

    Je tiens à dire que les variables que je modifie dans la fonction boutonPresse() sont bien volatile et que tout marche lorsque je décommente le Serial.println()... 
    Je n'ai pas non plus de Serial.println() dans la fonction boutonPresse()

    Merci d'avance, je suis totalement perdu face à ce bug :/

    • Partager sur Facebook
    • Partager sur Twitter

    [Arduino] Conflit interruption/Serial()

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown