Problème avec l'interruption externe du microcontrolleur.
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Problème avec l'interruption externe du microcontrolleur.



  1. #1
    invitec9a2d093

    Problème avec l'interruption externe du microcontrolleur.


    ------

    Salut tout le monde

    Je suis encore débutant en programmation de microcontrolleur et travaille avec mplabx avec hi-tech comme compilateur.
    Le code ci-dessous est celui d'une routine d'interruption externe qui allume une LED liée à la broche RD0 une fois déclenchée. Le code du programme a été compilé avec succès ainsi que la simulation du circuit sur PROTEUS ISIS. Le problème est que le programme ne sort pas de cette routine même en ajoutant un délais à cette routine (La LED devient ne s’éteint pas après l'interruption).

    #include <htc.h>


    void interrupt ISR(void)
    {
    if(INTF) //If External Edge INT Interrupt
    {

    INTF = 0; // clear the interrupt

    RD0 = !RD0; // Toggle RD0 pin

    }
    }

    Merci d'avance pour votre aide.

    -----

  2. #2
    inviteeb160de1

    Re : Problème avec l'interruption externe du microcontrolleur.

    - on ne sait meme pas quel PIC tu utilises ! il est préférable d'utiliser les registres type LAT plutot que les registres PORT pour piloter les drivers de sortie. Mais bon, comme on ne sait pas à quoi correspond RD0...
    - as tu un scope pour regarder ce qu'il y a en sortie ?

  3. #3
    invitec9a2d093

    Re : Problème avec l'interruption externe du microcontrolleur.

    J'utilise le PIC16f877 et j'ai configuré RDO comme sortie vers une LED.

  4. #4
    invite07d645db

    Re : Problème avec l'interruption externe du microcontrolleur.

    Regarde la gestion des interruptions dans le datasheet du PIC. Y'a pas mal de bits a activer pour autoriser l'interruption que tu veux.

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

    Re : Problème avec l'interruption externe du microcontrolleur.

    C'est la suite. En faite le programme fonctionne correctement, le problème est qu'en simulation avec PROTEUS ISIS une fois l'interruption se déclenche la LED devient allumée et ne s’éteint plus.

    void InitExternal_INT(void)
    {
    TRISB0 = 1; // Make RB0 pin as input

    INTCON = 0x90; // Enable Global + INT interrupt
    OPTION = 0x40; // Make INT as posedge triggered
    }


    // Configuration word for PIC16F877
    __CONFIG( HS & WDTEN & PWRTEN & UNPROTECT );

    // Define CPU Frequency
    // This must be defined, if __delay_ms() or
    // __delay_us() functions are used in the code
    #define _XTAL_FREQ 20000000


    void main(void)
    {
    InitExternal_INT(); // Initialize external interrupts on RB0 pin

    TRISD0 = 0; // Make output
    RD0 = 0; // Make value zero

    while(1)
    {
    }
    }

Discussions similaires

  1. Ventilo d'ordinateur problème avec alim externe
    Par invite798ac4a1 dans le forum Électronique
    Réponses: 4
    Dernier message: 01/07/2008, 23h44
  2. Problème avec un disque dur externe
    Par invite624c5402 dans le forum Matériel - Hardware
    Réponses: 7
    Dernier message: 14/04/2007, 22h25
  3. Probléme avec DD externe
    Par invitef4181796 dans le forum Matériel - Hardware
    Réponses: 1
    Dernier message: 01/04/2006, 16h42
  4. Problème avec un disque dur externe
    Par invite624c5402 dans le forum Dépannage
    Réponses: 1
    Dernier message: 05/02/2006, 02h08
  5. probleme avec un dd externe
    Par invite95a4c08b dans le forum Internet - Réseau - Sécurité générale
    Réponses: 9
    Dernier message: 10/11/2005, 16h24
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...