Oops! It appears that you have disabled your Javascript. In order for you to see this page as it is meant to appear, we ask that you please re-enable your Javascript!

pic18f2550 external interrupt int0

Tagged: ,

This topic contains 5 replies, has 2 voices, and was last updated by  Bitahwa Bindu 5 months ago.

  • Author
    Posts
  • #5114

    nadhem
    Participant

    void interrupt_low ()
    {
    if(INT0IF_bit==1)
    { RC1_bit=1; // alimenter la diode rouge
    delay_ms(3000) ;
    RC1_bit=0;
    INT0IF_bit=0; //desactiver le flag
    }
    }
    void main() {
    TRISC=0; // portc output
    TRISB0_bit=1; //select rb0 as input pin
    INTCON = 0xD0; //active Interupt Int0
    INTCON2 = 0x40; //config Interupt sur front montant
    IPEN_bit=0;
    PIE1=0;
    PIE2=0;
    PIR1=0;
    PIR2=0;
    while(1)
    {
    delay_ms(1000);
    RC0_bit=1; //alimenter la diode bleu

    }
    }

    ceci le code. il ne fonctionne pas je le tester sur un pic 16f877A il fonctionne. please helppp

  • #5115

    Bitahwa Bindu
    Keymaster

    Comment avez-vous configuré votre horloge et vos bits de configuration? Rappelez-vous que ce PIC a un port USB, ses réglages d’horloge sont différents des autres PIC.

    Comment avez-vous déclenché l’interruption? Avez-vous un bouton connecté à la broche RB0? Comment est-il connecté?

    Comment ce code fonctionne-t-il avec PIC16F877A alors que ce PIC n’a pas de registre INTCON2? comment est-ce possible? Parce qu’avec PIC16F877A, le bit Interrupt Edge Select est défini dans le registre OPTION_REG et non dans le registre INTCON2.

    À l’avenir, merci de poster votre question dans le bon forum, comme vous pouvez le constater, vous avez posté votre question dans le forum Flowcode alors que ce code est pour MPLAB XC8.

  • #5119

    nadhem
    Participant

    oui je sais que le registre intcon2 ne trouve pas dans pic 16f877A je le remplasse par optionreg le code fonctionne. comment je regler l’horloge. en fonction de quoi je regler l’horloge. oui je fais la simulation isis. je mais un bouton poussoir au RB0 .

  • #5120

    Bitahwa Bindu
    Keymaster

    Vous voyez, c’est le problème. Vous publiez un code différent qui, selon vous, ne fonctionne pas pour ce PIC18F2550 mais le même code exact fonctionne pour le PIC16F877A. C’est trompeur et une perte de temps pour la personne qui essaie de vous aider.
    poster le code complet correct que vous avez écrit pour le PIC18F2550 avec les bits de configuration, ce sont les sections de codes qui commencent par #pragma, nous pourrons alors vous aider.

  • #5121

    nadhem
    Participant

    /******** interruption externe “INTE0” sur le bit RB0 *********/
    void interrupt()
    {
    if(INTCON.INT0IF&& INT0IE_bit)
    {
    INT0IF_bit = 0;
    INT0IE_bit = 0;
    RC1_bit=1; // alimenter la diode rouge
    delay_ms(3000) ;
    RC1_bit=0; //eteindre la diode rouge
    }
    }
    void main() {
    TRISC=0; // portc output
    TRISB0_bit=1; //select rb0 as input pin
    ADCON1 = 0x0F; // AD converter off
    CMCON = 7;

    while(1)
    {
    INTCON = 0x90; //active Interupt Int0
    INTCON2.INTEDG0=0; //config Interupt sur front montant
    RCON.IPEN=0;
    RC0_bit=1; //alimenter la diode bleu
    }
    }

     

    ce programme fonctionne sur pic18F2550 c’est bon

    je travail par mikroc . comme tu vois la configuration des registres INTCON et INTCON2 se trouve dans le boucle while(1)

    merci pour votre attention

  • #5123

    Bitahwa Bindu
    Keymaster

    Vous ne pouvez pas configurer les interruptions de cette façon.
    Vous ne pouvez pas mettre la configuration d’interruption dans la boucle while (1), cela ne fonctionnera jamais.

    Vous ne mettez que des choses qui doivent être exécutées de manière continue dans la boucle while (1). Pas la configuration INTCON.
    S’il vous plaît lisez ce tutoriel et suivez exactement comment nous l’avons fait, cela devrait fonctionner exactement avec votre exemple.
    Voir les étapes pour configurer l’interruption.

    https://www.studentcompanion.co.za/pic-microcontroller-interrupts-mikroc/

    Si vous avez besoin d’une vidéo, toutes les étapes sont expliquées clairement dans cette vidéo. Suivez simplement les étapes ici et oubliez votre code précédent et cela devrait fonctionner: https://youtu.be/QzMoSCwfxuM

     

You must be logged in to reply to this topic.

Select your currency
ZAR South African rand
EUR Euro