Interruption et PIC16F877A
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Interruption et PIC16F877A



  1. #1
    invite639d7aaf

    Interruption et PIC16F877A


    ------

    Bonsoir;

    s'il vous plait, je programme un PIC16F877A en mikroC, et je vous pose la question sur la possibilité d'utiliser deux interruptions sur le même programme une propre au débordement du timer0 et une propre au débordement du timer1.

    -----

  2. #2
    RISC

    Re : Interruption et PIC16F877A

    Salut,
    Il est possible d'utiliser autant d'interruptions que tu veux.
    Dans le programme d'interruption, il faut juste tester les flags les uns après les autres pour savoir quel périphérique a provoqué l'interruption.
    Sur le site de MikroElektronika tu trouveras certainement des exemples
    a+

  3. #3
    invite639d7aaf

    Re : Interruption et PIC16F877A

    Bonjour,

    Pour bien m'expliquer, j'ai bien vérifié les flag les registres de configuration et de contrôle mais le problème c'est dans la nomination de l'interruption, c'est à dire quand je déclare une fonction d'interruption propre au timer0 appelé "void interrupt()" la deuxième fonction d'interruption propre au timer1 doit être autre que "void interrupt()" prenons par exemple "void interrupt1()" ou bien "void int1()" mais dans ce cas il les considère comme des fonction à appelé dans votre programme ils ne seront jamais traités si on les appellent pas dans le coeur de notre programme même si le débordement arrive et le flag et positionné, après avoir fait plusieurs essai j'ai constaté que seul le mot "interrupt " qui fait comprendre au programme que c'est une fonction d'interruption. alors que dois-je faire s'il vous plait?

    Merci!!

  4. #4
    invitef86a6203

    Re : Interruption et PIC16F877A

    Le Monsieur t'as dis de testé les flags;

    void interrupt() {
    if (INTCON.TMR0IF) {
    counter++;
    TMR0 = 96;
    INTCON.TMR0IF = 0;
    }
    else if (INTCON.RBIF) {
    counter++;
    TMR0 = 96;
    INTCON.RBIF = 0;
    }
    }
    trouvé ici en 3 secondes avec google...
    http://forums.futura-sciences.com/ne...8033&noquote=1

  5. A voir en vidéo sur Futura
  6. #5
    invite639d7aaf

    Re : Interruption et PIC16F877A

    Merci pour cette recherche vous avez pas à rechercher sur google en 3 secondes mais dans la librairie de mikroC interrupt, Mais c'est pas grave, car je pense que vous m'avez pas bien compris. mon problème c'est que l'utilisation d'une seule interruption de débordement de Timer ça fonctionne à merveille mais quand j'ajoute une autre interruption dans mon programme que ça soit le débordement du Timer1 ou autre différent que celui utiliser en premier le compilateur me marque une erreur car je déclare deux fonction d'interruptions par le même nom "void interrupt()", alors j'ai essayé de renomer la deuxième fonction d'interruption mais sa fonctionne pas.

  7. #6
    invitef86a6203

    Re : Interruption et PIC16F877A

    il y a qu'une seule entrée d'int !
    C est a toi d'appeler une routine si tu veux , avec les tests des flags !

  8. #7
    invitef86a6203

    Re : Interruption et PIC16F877A

    exemple précédent avec appels

    void interrupt() {
    if (INTCON.TMR0IF) {
    MyInt1() ;
    }
    else if (INTCON.RBIF) {
    MyInt2();l
    }
    }

    MyInt1() {
    counter++;
    TMR0 = 96;
    INTCON.TMR0IF = 0;
    }
    MyInt2() {
    counter++;
    TMR0 = 96;
    INTCON.RBIF = 0;
    }

  9. #8
    invite639d7aaf

    Re : Interruption et PIC16F877A

    Merci,
    maintenant c'est bon j'avais pas eu cette idée d'utiliser un appel au cœur de la fonction interrupt() Merci beaucoup pour votre aide je vous rassure que ça fonctionne à merveille Merci encore une fois!!

Discussions similaires

  1. PIC : interruption externe et interruption on change ?
    Par invitea3277f60 dans le forum Électronique
    Réponses: 10
    Dernier message: 09/04/2012, 13h41
  2. Pic16f877a!
    Par invite6ab74433 dans le forum Électronique
    Réponses: 0
    Dernier message: 24/05/2008, 18h34
  3. pic16f877A ROM
    Par inviteca539e75 dans le forum Électronique
    Réponses: 5
    Dernier message: 07/08/2007, 14h51
  4. pic16F877A // USBMOD4
    Par inviteca539e75 dans le forum Électronique
    Réponses: 0
    Dernier message: 09/07/2007, 15h54
  5. adc + pic16F877A+LCD
    Par invite412b515c dans le forum Électronique
    Réponses: 0
    Dernier message: 29/05/2007, 23h59
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...