Plusieurs interruptions périphériques
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Plusieurs interruptions périphériques



  1. #1
    invitead51e543

    Plusieurs interruptions périphériques


    ------

    Bonjour,

    Je travaille sur un pic18F4431 ; j'ai fait un programme, ou pour l'instant je travaille avec 2 interruptions (Timer 2 haute priorité & Timer 0 basse priorité).
    Je souhaite également travaillé avec le Timer1 en interruption basse priorité, le problème est que mon programme plante dès que je rajoute cette ligne :

    Code:
    PIE1bits.TMR1IE = 1; // Enables the TMR1 overflow interrupt

    La compilation est bonne, j'arrive à envoyer mon programme, c'est juste que ma carte ne réagit plus dès qu'on met cette ligne. Si je l'enlève, ça marche...

    Est ce que l'on peut utiliser plusieurs interruptions basse priorité?
    Je ne vois pas d'où vient le problème...

    Merci de votre aide.

    -----

  2. #2
    Gérard

    Re : Plusieurs interruptions périphériques

    As-tu pensé à effacer le drapeau de l'interruption ?
    S'il est levé, tu rentres en interruption et tu n'en sors plus.
    Ca peut expliquer ton souci.

  3. #3
    invitead51e543

    Re : Plusieurs interruptions périphériques

    Le problème ne vient pas de ça.
    C'est seulement le fait d'écrire l'instruction de dessus qui fait planter, sans déclarer mon interruption (je l'avais mise en commentaire pour vérifier).
    Par rapport à mon programme qui fonctionnait très bien, j'ai juste rajouté :

    Code:
    PIE1bits.TMR1IE = 1; // Enables the TMR1 overflow interrupt
    Autre petite question, quand j'ai 2 interruptions basse priorité, faut-il déclarer :

    Code:
    void interrupt low_priority Timer0_1 ()
    {
            if (flag d'interruption Timer0 ==1)
            {
             ....  
             flag = 0;
            }
           if (flag d'interruption Timer1 ==1)
            {
             ....  
             flag = 0;
            }
    ou bien faut-il faire 2 interruptions

    Code:
    void interrupt low_priority Timer0 ()
    {
            if (flag d'interruption Timer0 ==1)
            {
             ....  
             flag = 0;
            }
    }
    
    void interrupt low_priority Timer1 ()
    {
            if (flag d'interruption Timer1 ==1)
            {
             ....  
             flag = 0;
            }
    }
    Merci d'avance.

  4. #4
    invite8bf8ba05

    Re : Plusieurs interruptions périphériques

    Citation Envoyé par flolarajasse Voir le message
    C'est seulement le fait d'écrire l'instruction de dessus qui fait planter, sans déclarer mon interruption
    Tu ne crois pas que c'est ça le problème !!!??
    S'il est entrain de tourner, ça déclenche l'interruption et vu que tu n'a pas gérer l'interruption, il plante.

    Tu as configuré avant ton TIMER1 ?

  5. A voir en vidéo sur Futura

Discussions similaires

  1. 1 alimentation pour plusieurs peripheriques en 12V
    Par invitead298b25 dans le forum Électronique
    Réponses: 7
    Dernier message: 11/02/2013, 22h23
  2. Problèmes avec plusieurs interruptions
    Par flyingrock dans le forum Électronique
    Réponses: 12
    Dernier message: 27/12/2012, 09h44
  3. Programmation en C : Plusieurs interruptions avec PIC 18
    Par invitedd558ae9 dans le forum Électronique
    Réponses: 2
    Dernier message: 24/10/2010, 08h07
  4. Périphériques et Linux...
    Par invite428e20bb dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 15/11/2006, 09h19
  5. PIC 16F84 – Lecture de plusieurs pin et écriture sur plusieurs pins
    Par invitef1f90160 dans le forum Électronique
    Réponses: 4
    Dernier message: 31/12/2005, 15h09
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...