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

Problème avec interruption externe sur PIC24F08KA102



  1. #1
    jean.decuigniere

    Problème avec interruption externe sur PIC24F08KA102


    ------

    Bonjour à tous,

    J'essaye de coder une interruption externe sur la broche 16 de mon PIC24F08KA102 mais je n'ai pas de résultats...
    Etant débutant dans le monde des interruptions, pourriez-vous m'aider s'il vous plaît?

    Voici mon code actuel que j'ai écrit en m'inspirant des datasheets :

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <ports.h>
    #include <p24F08KA102.h>
    #include "Compteur.h"
    #include "Affichage.h"
    
    /*
     * 
     */
    
    //char valeur_digit = 0, numero_afficheur = 0;
    unsigned char interruptionOK = 0;
    
    void __attribute__((__interrupt__)) _INT0Interrupt(void);
    void IntInit(void);
    
    void IntInit(void)
    {
       INTCON2 = 0x0000;   /*Setup INT0, INT1, INT2, interupt on falling edge*/
       Int0_Clear_Intr_Status_Bit; /*Reset INT0 interrupt flag */
       EnableINT0;  /*Enable INT0 Interrupt Service Routine */
       SetPriorityInt0(1);	/*set low priority*/
    }
    
    void __attribute__(( interrupt, no_auto_psv)) _INT0Interrupt(void)
    {    
        interruptionOK = 1;
        Int0_Clear_Intr_Status_Bit;
    }
    
    int main(int argc, char** argv) {
       
        TRISB = 0x0000;
        TRISA = 0x0000;
        
        IntInit();
    
        while(interruptionOK == 0)
        {
            AFFICHEUR_1 = 1;
            SEGMENT_A = 0;
            SEGMENT_B = 1;
            SEGMENT_C = 0;
            SEGMENT_D = 0;
            SEGMENT_E = 0;
            SEGMENT_F = 0;
            SEGMENT_G = 0;
        }
    
        AFFICHEUR_1 = 1;
        SEGMENT_A = 1;
        SEGMENT_B = 1;
        SEGMENT_C = 1;
        SEGMENT_D = 1;
        SEGMENT_E = 1;
        SEGMENT_F = 0;
        SEGMENT_G = 0;
    
        return (EXIT_SUCCESS);
    
    }
    Pour l'instant mon code se compile mais ne fais rien du tous quand je change l'état de la broche 16 de mon µC.

    Merci d'avance de vos réponses.

    Jean.

    -----

  2. Publicité
  3. #2
    Benzooo

    Re : Problème avec interruption externe sur PIC24F08KA102

    [EDIT]: Mal lu le sujet, désolé.

    Cordialement,
    Benoit.
    Dernière modification par Benzooo ; 16/07/2012 à 16h46.

  4. #3
    jean.decuigniere

    Re : Problème avec interruption externe sur PIC24F08KA102

    Tout d'abord merci de ta réponse!

    En fait, j'aimerais que l'interruption se déclenche lorsque la pin 16 de mon µC (donc INT0) se retrouve dans un état haut donc déjà je me rend compte qu'il faudra que je déclenche sur front montant mais je ne vois pas comment déclarer ceci à mon µC.

  5. #4
    RISC

    Re : Problème avec interruption externe sur PIC24F08KA102

    Salut,

    C'est quoi ton compilateur ???
    La syntaxe ne ressemble pas au C30...

    a+
    Ma marotte ? les microcontrôleurs ;=)

  6. A voir en vidéo sur Futura
  7. #5
    jean.decuigniere

    Re : Problème avec interruption externe sur PIC24F08KA102

    Mon compilateur est bien le C30.
    Il y a plusieurs façon de contrôler les interruptions (plusieurs façon d'écrire), je l'ai lu dans la datasheet à moins que je me sois complètement trompé ....
    J'avoue que la je suis complètement perdu avec ces interruptions...

    En tous cas merci d'avoir pris le temps de me lire et si jamais tu as une solution je suis plus que preneur!

    Cordialement,

    Jean

  8. #6
    terriblement

    Re : Problème avec interruption externe sur PIC24F08KA102

    Salut,

    tu as deja essayé de voir sans l'interrupt si la bonne valeur est lue sur le PORT en question ?
    donne aussi la version du package que tu as ( 28 Pin PDIP ?)

  9. Publicité
  10. #7
    jean.decuigniere

    Re : Problème avec interruption externe sur PIC24F08KA102

    Salut,

    Oui j'ai tenté de juste mettre ma pin en entrée et de mettre une variable à 1 quand cette pin est à un mais la aussi gros soucis c'est que j'ai bien 3.3 V reçu sur la pin du µC mais le programme ne met pas ma variable à 1....

    Le package de mon pic est un 28 pin spdip.

    Cordialement,

    Jean

  11. #8
    terriblement

    Re : Problème avec interruption externe sur PIC24F08KA102

    je comprends pas trop ta démarche,
    si un truc aussi basique que la lecture de l'état d'une pin ne fonctionne pas, pourquoi te lancer dans les interruptions ?
    Fais tout étape par étape, tu y gagneras en temps de deboggage.

    Donc, fait un projet vierge, et concentre toi sur ce problème d'abord.

    Tu as pensé à regardé si ta PIN est bien configurée en digital ? (je sais pas si elle est partagée avec un ADC).
    Vérifie si il y a d'autres fonctions partagées sur cette PIN qui pourraient etre actives.

    Tout est dans la datasheet, faut juste y passer (beaucoup) du temps.

Discussions similaires

  1. PIC : interruption externe et interruption on change ?
    Par jlg_47 dans le forum Électronique
    Réponses: 10
    Dernier message: 09/04/2012, 13h41
  2. [CCS] Petit problème avec interruption RDA
    Par rolf34 dans le forum Électronique
    Réponses: 5
    Dernier message: 28/03/2012, 17h18
  3. problème avec exercice asm avec nasm et interruption dos 21h
    Par anouarattn dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 13/12/2011, 06h27
  4. Probléme avec interruption INTCON.RBIE sur 16F88...
    Par vede dans le forum Électronique
    Réponses: 21
    Dernier message: 27/06/2010, 02h07
  5. Problème interruption sur PIC16F
    Par jolindien dans le forum Électronique
    Réponses: 7
    Dernier message: 21/01/2009, 19h26
Découvrez nos comparatifs produits sur l'informatique et les technologies.