2 interruptions : TMR0 et RB0/INT ne fonctionne pas..
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

2 interruptions : TMR0 et RB0/INT ne fonctionne pas..



  1. #1
    invite1b5cd6fb

    Smile 2 interruptions : TMR0 et RB0/INT ne fonctionne pas..


    ------

    Bonjour!
    Je voudrais gérer un bouton poussoir sélection qui est connecté à la broche (RB0/INT) et inverser l'état de la led à chaque débordement du TMR0.
    Malheuresement il n'y a que l'interruption RB0/INT qui fonctionne, je n'y comprends plus rien.
    J'y travailles depuis 2 jours... pouvez-vous me conseiller?

    Merci beaucoup!
    A+!
    marC

    voici mon code :

    Code:
     
    
    // PORTC
    # define BIT_LED F2                   // PIC 17 led indicatrice du fonctionnement de l'horloge calendrier
    
    // PORTB
    # define BIT_BP_SELECTION        F0    // PIC 33 (RBO/INT)
    # define BIT_BP_REGLAGE           F1    // PIC 35 (RB1)
    
    
    unsigned short int transition_bp_selection = 0;
    unsigned short int etatanterieur_bp_selection = 1;         // BP ouvert lors de la derniere scrutation
    unsigned short int etat_port ;   // variable temporaire
    
    
    void interrupt()
     {
       if (INTCON.INTF == 1)  // bouton poussoir sur RB0/INT appuyé
        {
         PORTC.BIT_LED = ~PORTC.BIT_LED;
        
         transition_bp_selection = test_bp_selection();
         if (transition_bp_selection == 1)
          {
           delay_ms(100);
           count_selection++;
           if (count_selection == 6)
            {
             count_selection = 0;
             set = -1;
            }
          }
          INTCON.INTF = 0;
        }
    
    
      if (INTCON.T0IF == 1)  // débordement du TMR0
       {
         PORTC.BIT_LED = ~PORTC.BIT_LED;
         
         Blink = ~Blink;
         INTCON.T0IF = 0;
         TMR0 = 12;
        }
    }
    
    // test si le bouton poussoir selection à été enfoncé. Si oui, il retourne 1, sinon il retourne 0
    unsigned short int test_bp_selection()
    {
         // test du bouton poussoir SELECTION
         etat_port = PORTB.BIT_BP_SELECTION;   // lecture du niveau du port
    
         if ((etat_port == 0) && (etatanterieur_bp_selection == 1))
         {
               etatanterieur_bp_selection = etat_port;
               return 1; // BP a été appuyé
         }
         else
         {
               etatanterieur_bp_selection = etat_port;
               return 0; // BP inactif
         }
    }
    
    void main() 
     {
     ANSEL  = 0;
     ANSELH = 0;
     C1ON_bit = 0;    // On désactive les comparateurs analogiques
     C2ON_bit = 0;
     
     TRISB = 0x01;
     PORTC.BIT_LED = 1;   // Led indicatrice du programme allumer
    
    OPTION_REG.NOT_RBPU = 0;
    OPTION_REG.INTEDG = 0;
    OPTION_REG.PSA = 0;
    OPTION_REG.PS0 = 1;
    OPTION_REG.PS1 = 1;
    OPTION_REG.PS2 = 1;
    
    INTCON.GIE = 1;
    INTCON.INTF = 0; // Clear interrupt flag prior to enable
    INTCON.INTE = 1; // enable INT interruptINTCON.T0IE = 1;
    INTCON.T0IE = 1;
    INTCON.T0IF = 0;
    TMR0 = 12;
    
    do {
              // on attend une interruption
         } while(1);
    }

    -----

  2. #2
    paulfjujo

    Re : 2 interruptions : TMR0 et RB0/INT ne fonctionne pas..

    bonjour,

    Quel type de PIC ?

  3. #3
    paulfjujo

    Re : 2 interruptions : TMR0 et RB0/INT ne fonctionne pas..

    je ne vois pas ou est activé le timer0 ?

    T0CONbits.TMR0ON=1; // Timer0 ON
    Dernière modification par paulfjujo ; 14/06/2013 à 16h39.

Discussions similaires

  1. Interruption INT0/RB0 sur pic18f2550 compilateur C18 marche pas
    Par invitebca82e41 dans le forum Électronique
    Réponses: 11
    Dernier message: 20/10/2011, 00h48
  2. Grand Servomoteur fonctionne pas, alors que petit fonctionne
    Par invite5a932b88 dans le forum Électronique
    Réponses: 3
    Dernier message: 04/02/2011, 22h45
  3. Problème avec les broches spéciales RB0/INT et RA4/T0CKI
    Par Montd'est dans le forum Électronique
    Réponses: 5
    Dernier message: 21/12/2008, 20h14
  4. PIC18F4682 / INT RB0 / Mode Sleep
    Par invite3c35244f dans le forum Électronique
    Réponses: 24
    Dernier message: 12/12/2007, 23h24
  5. mes javascript:popupimage ne fonctionne pas sur mon site web mais fonctionne en local
    Par invite4ff499e4 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 6
    Dernier message: 28/01/2006, 18h31
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...