External interrupt pic18f
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

External interrupt pic18f



  1. #1
    invited40f9802

    External interrupt pic18f


    ------

    bonjour,

    j'ai codé une External interrupt mais ça ne marche pas. j'ai mis un bouton sur INT2 sur l'aminus18 ( pic18f25k20) et j'ai branché un led qui clignote dés que j'appuie sur le bouton. le compte ne s’incrémente pas donc le led ne clignote pas.
    voila mon code:

    unsigned char nb;

    void interrupt()
    {
    if (INTCON3.INT2IF==1) // RB2
    {
    nb++;
    INTCON3.INT2IF=0;
    }
    }
    void main()
    {
    int i;

    INTCON3.INT2IE = 1;
    INTCON.GIE = 1;

    nb=0;

    while(1)
    {
    if(nb>=1)
    {
    for(i=0;i<500;i++)
    {
    PORTC=~PORTC;
    Delay_ms(200);
    }
    }
    }
    }

    merci pour votre aide

    -----

  2. #2
    invite0e5af214

    Re : External interrupt pic18f

    Salut,

    AVant de chercher dans ton code... es tu sur de ton cablage ?
    Autrement dit, est-ce que ca fonctionne SANS utiliser les interruptions ? En lisant le PORTB.2

  3. #3
    invite5637435c

    Re : External interrupt pic18f

    Bonsoir,

    Plusieurs problèmes:

    1/ il faut déclarer ta variable nb en volatile unsigned char nb.

    Et l'initialiser évidemment avant d'autoriser les interruptions, c'est plus propre et surtout plus sur.

    2/ la variable nb n'est jamais remise à 0 une fois entré dans la boucle infinie while(1) et que la condition du if est remplie.

    Quel intérêt ???

    Moi j'aurai remis nb à 0 après le for, ainsi tu quittes le if et tu y réaccèdes si une nouvelle interruption survient.

    @+

  4. #4
    invite5637435c

    Re : External interrupt pic18f

    Re,

    Il faut toujours initialiser à 0 un flag avant de s'en servir car rien ne te dis à priori qu'il le soit...

    INTCON3.INT2IF=0;

    Donc:

    Code:
    main(){
    ....
    INTCON3.INT2IF=0;
    INTCON3.INT2IE = 1;         
    INTCON.GIE = 1;
    
    ....
    }

  5. A voir en vidéo sur Futura

Discussions similaires

  1. MSP430 external clock
    Par invite1191b1c8 dans le forum Électronique
    Réponses: 0
    Dernier message: 08/09/2011, 11h53
  2. Interrupt on change + fonction
    Par invitedb9b1ced dans le forum Électronique
    Réponses: 3
    Dernier message: 09/01/2011, 20h57
  3. Mikrobasic LCD et interrupt
    Par invite8c54107c dans le forum Électronique
    Réponses: 0
    Dernier message: 19/10/2009, 16h28
  4. Interrupt on change
    Par Qristoff dans le forum Électronique
    Réponses: 12
    Dernier message: 01/02/2009, 19h14
  5. External Bus Interface
    Par invite15873aad dans le forum Électronique
    Réponses: 1
    Dernier message: 03/05/2007, 18h07
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...