Interruption pic16f877
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Interruption pic16f877



  1. #1
    invite52753ba9

    Question Interruption pic16f877


    ------

    bonjour je suis étudiant dans une école d’ingénieur et j'ai à réaliser mon projet de fin d'année"carte universelle pour la commande de tous les redresseurs et gradateurs à l'aide du pic16F877."
    le principe et de détecter le passage par zéro des image des tension à en utilisant les interruptions du portb(Rb4à Rb7); mais le problème est que lorsque je fis un test sur ces interruption une fois que j'appuis sur l'interrupteur de test le pic se bloque.
    voila mon problème; dans l'attente d'une réponse de votre part

    -----

  2. #2
    invitedb9b1ced

    Re : Interruption pic16f877

    Hello

    Fournies ton code, sinon on ne pourra pas beaucoup t'aider mis à part l'éternel : tu as bien mis le flag à 0 après l'interruption ?

  3. #3
    Bigonoff

    Re : Interruption pic16f877

    Salut
    -----

    Attention qu'en plus de l'effacement du flag tel que précisé par Amoniaque, il est obligatoire de lire le PORTB pour mettre fin à la condition d'interruption et autoriser ensuite seulement l'effacement du flag.

    Sans quoi, le PIC détecte une différence entre le dernier état lu et l'état actuel et replace immédiatement le flag à 1, entraînant l'impossibilité de sortir de l'interruption.

    Bref, pour résumer : lire le PORTB (movf PORTB,w) puis ensuite seulement effacer RBIF. Pour peu que ton problème vienne de là, évidemment.

    A+
    Bigonoff
    Vive l'Internet libre

  4. #4
    invite52753ba9

    Smile Re : Interruption pic16f877

    D'abord je vous remercie pour vous reponses, mais voila le programme que je viens de tester en C avec le compilateur mikroC:
    j'aimerais bien s'il y a des corrections à faire.


    void interrupt() {
    if (INTCON.INTF) {
    PORTD=0xFF;
    delay_ms(1000);
    INTCON.INTF = 0;
    }
    else if (INTCON.RBIF) {
    PORTD=0xFF;
    delay_ms(1000);
    INTCON.RBIF = 0;
    }
    }

    void main() {
    char cnt=0;
    TRISB=0xFF;
    TRISD=0x00;
    INTCON=0b11011000;
    OPTION_REG=0b10000000;
    do
    {
    PORTD=0;
    delay_ms(100);
    PORTD=0xFF;
    } while(1);

    }

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

    Re : Interruption pic16f877

    J'ai diagonalisé ton code donc je n'ai pas tout scruté mais déjà fais comme t'a dit Bigonoff : lis ton entrée qui a introduit l'interrupt on change puis seulement remets à zéro RBIF.

  7. #6
    invite52753ba9

    Thumbs up Re : Interruption pic16f877

    merci beaucoup pour votre solution, j'ai essai ce que vous avez dis bigonoff et ça a marché merci bcp encore une fois mais je pense que je serai besoin de vous jusqu'à ce que réalise cette maquette.

  8. #7
    invite52753ba9

    Cool Re : afficheur LCD en language C pic16f877

    bonjour tt le monde, s'il vous plait j'ai besoin d'une aide pour afficher le contenu d'une variable en decimal sur l'afficheur LCD 2*16 en langage C.
    si vous avez une reponse je vous attend merci

  9. #8
    redtronic

    Re : afficheur LCD en language C pic16f877

    salut,
    merci Bigonoff pour cette information.
    Redtronic

  10. #9
    invite52753ba9

    Re : Interruption pic16f877

    slt tt le monde ça y est j'ai trouver la reponse pour l'affichage des variables sur l'afficheur LCD, il suffit de chercher la fonction
    "intToStr "dans le HELP de mikroc, c'est très facile mais pour moi comme debutant c'est grande chose

Discussions similaires

  1. PIC16f877
    Par invite13659407 dans le forum Électronique
    Réponses: 36
    Dernier message: 19/12/2009, 21h36
  2. Pic16f877
    Par invite814175e4 dans le forum Électronique
    Réponses: 8
    Dernier message: 16/12/2009, 14h42
  3. pic16f877
    Par invite814175e4 dans le forum Électronique
    Réponses: 0
    Dernier message: 16/12/2009, 14h28
  4. reprise de prog aprés interruption (pic16f877)
    Par invite3bf0caa8 dans le forum Électronique
    Réponses: 13
    Dernier message: 18/03/2008, 20h58
  5. Interruption C PIC16F877
    Par invite210e4233 dans le forum Électronique
    Réponses: 2
    Dernier message: 04/10/2007, 22h26
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...