Générer une interruption PIC18F458
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Générer une interruption PIC18F458



  1. #1
    invite7e553d28

    Générer une interruption PIC18F458


    ------

    Bonjour à tous,

    je cherche à me familiariser avec les interruptions sur PIC18F,

    j'ai fait un bout de code qui ne fonctionne pas correctement en simulation sur MPLAB, je n'arrive plus à ressortir de l'interruption.

    Code:
    #include <p18f458.h>
    
    
    #define led1 PORTAbits.RA0
    #define led2 PORTAbits.RA1	
    #define led3 PORTAbits.RA2
    #define led4 PORTAbits.RA3
    #define inter1 PORTBbits.RB5
    
    
    void InterruptHandlerHigh (void);
    
    
    //---------------------------------interruption------------------------
    #pragma code InterruptVectorHigh = 0x08
    void
    InterruptVectorHigh (void)
    {
      _asm
        goto InterruptHandlerHigh //jump to interrupt routine
      _endasm
    }
    
    //------------------------------------------------------------------------
    // High priority interrupt routine
    
    #pragma code
    #pragma interrupt InterruptHandlerHigh
    
    void
    InterruptHandlerHigh ()
    {
      if (INTCONbits.RBIF)
        {                                   
          INTCONbits.RBIF = 0;            // mise à 0 du flag c'est ici le pb !
    	led3=1;
    	led4=1;
    	led1=0;
    	led2=0;
        }
    }
    
    
    
    
    //------------programme_principal------------------------------------------
    
    void main (void)
    {
    	TRISB=0xFF*; // PORTB en entrée
    	ADCON1=0x07; // PORTA en digital
    	TRISA=0x00; // PORTDA en sortie
    	PORTA=0x00;
    	
    	INTCON=0b10001000; // autorisation des interruptions sur RB4 à RB7
    	while(1)
    	{
    	led3=0;
    	led4=0;
    	led1=1;
    	led2=1;
    	}
    	
    		
    }
    une petite explication du fonctionnement supposé, à la mise sous tension les LEDS 1 et 2 s'allument, dés qu'il y a une interruption sur RB5 par exemple les LEDS 1 et 2 s'éteignent et les LEDS 3 et 4 s'allument.

    mon problème est que cette action INTCONbits.RBIF = 0; ne s'effectue pas, j'arrive pas à remettre RBIF à 0 donc je peux pas ressortir de mon interruption.

    avez vous une idée ?

    merci.

    -----

  2. #2
    invite7a49d0d5

    Cool Re : Générer une interruption PIC18F458

    Citation Envoyé par alberto_to Voir le message
    Bonjour à tous,

    je cherche à me familiariser avec les interruptions sur PIC18F,
    (...)
    une petite explication du fonctionnement supposé, à la mise sous tension les LEDS 1 et 2 s'allument, dés qu'il y a une interruption sur RB5 par exemple les LEDS 1 et 2 s'éteignent et les LEDS 3 et 4 s'allument.

    mon problème est que cette action INTCONbits.RBIF = 0; ne s'effectue pas, j'arrive pas à remettre RBIF à 0 donc je peux pas ressortir de mon interruption.

    avez vous une idée ?

    merci.
    Bonjour,

    si ça fonctionnait : les LEDs 3 et 4 s'allument puis s'éteignent immédiatement
    donc on les voit pas s'allumer...

    pour ressortir de l'int, peut-être en ajoutant return ou retw à "la fin"...

    sinon la gestion de l'int. RBIF n'est pas aisée, car elle génère
    toujours deux interruptions, une sur le flanc montant, une autre
    sur le descendant... d'un appui sur un BP par exemple...

    vede
    ;O]

Discussions similaires

  1. Gérer une interruption avec un pic
    Par invite588f7d7e dans le forum Électronique
    Réponses: 2
    Dernier message: 15/01/2010, 18h09
  2. Generer une impulsion
    Par invite471ecb4b dans le forum Physique
    Réponses: 4
    Dernier message: 19/05/2009, 14h42
  3. générer une interruption [PIC et transistors]
    Par invite72f64164 dans le forum Électronique
    Réponses: 8
    Dernier message: 10/05/2009, 08h12
  4. générer une impulsions
    Par invite74c75a9e dans le forum Électronique
    Réponses: 18
    Dernier message: 28/04/2009, 16h34
  5. générer une implusion
    Par inviteb80eb4e0 dans le forum Électronique
    Réponses: 7
    Dernier message: 02/09/2004, 21h38
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...