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

Problème interruption sur PIC16F



  1. #1
    jolindien

    Problème interruption sur PIC16F


    ------

    Bonjour,

    Plusieurs discussions traitent déjà de ce problème mais je n'y ai pas trouvé de solutions...

    Je développe un programme sur PIC16F690 avec Pickit2 et MikroC.
    Un quartz externe 20mhz est connecté, portc.F0 à F3 sont connectés à des leds (sur la carte pickit2).

    je souhaite traiter les interruptions sur le portb,
    voici mon code:
    Code:
    void init_pic();
     
    void init_pic(void)
    {
    ANSEL = 0;     // ports analogiques désactivés
    ANSELH = 0;
    PORTC=0x00;	
    TRISC=0;         //portc en sortie (sur des leds)
    PORTB=0;
    TRISB=0b11111111; //Rbx en entrée
    INTCON=0b10001000; //GIE=1 ,RABIE=1 ,
    }
    
    void interrupt(void)
    {
       //ne fonctionne pas : les leds ne s'allument jamais	
       PORTC.F3 = 1;		
       if(RABIF){
       PORTC.F2 =~PORTC.F2;  // Toggle sur RC
       INTCON.RABIF=0;
       }
    }
    
    void main(void)
    {
    	init_pic();
    	for(;;){
    		//cette partie fonctionne
    		Delay_ms(1000);
    		PORTC.F0=~PORTC.F0;
    		if (PORTB.F4) PORTC.F1=~PORTC.F1;	//teste si le portb.f4 est bien activée
     	}
    }
    Je ne comprend pas pourquoi le programme n'entre jamais dans l'interruption...
    Merci à toute suggestion!

    -----

  2. #2
    ptithom95

    Re : Problème interruption sur PIC16F

    dans ta partie main, tu ne fais pas appel a la fonction interrupt...

    le programme ne lit que se qui se trouve dans la fonction main

    Voila mes souvenirs de programmation...a verifier

  3. #3
    jolindien

    Re : Problème interruption sur PIC16F

    Citation Envoyé par ptithom95 Voir le message
    dans ta partie main, tu ne fais pas appel a la fonction interrupt...

    le programme ne lit que se qui se trouve dans la fonction main

    Voila mes souvenirs de programmation...a vérifier
    Si j'ai bien compris, nommer une fonction "interrupt" permet au compilateur de reconnaitre qu'il s'agit du traitement des IRQ.
    A condition de les autoriser,
    ce que j'ai essayer de faire à la ligne
    Code:
    INTCON=0b10001000; //GIE=1 ,RABIE=1

  4. #4
    Seb.26

    Re : Problème interruption sur PIC16F

    Je ne connais pas MikroC, mais sur mon compilo, c'est un #pragma qui indique le vecteur d'IT associé à une f() ...
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

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

    Re : Problème interruption sur PIC16F

    Je pense qu'il faut initialiser le registe IOCB pour autoriser les interruption sur front pour le port B (page 70 de la datasheet).

  7. #6
    jolindien

    Re : Problème interruption sur PIC16F

    Citation Envoyé par daripo38 Voir le message
    Je pense qu'il faut initialiser le registe IOCB pour autoriser les interruption sur front pour le port B (page 70 de la datasheet).
    Oui j'avais loupé ca!
    Je teste des que possible... merci!

  8. #7
    jolindien

    Re : Problème interruption sur PIC16F

    Citation Envoyé par Seb.26 Voir le message
    Je ne connais pas MikroC, mais sur mon compilo, c'est un #pragma qui indique le vecteur d'IT associé à une f() ...
    Je pense que tu utilise MPLAB, mais sur MikroC je crois pas nécessaire.
    Merci pour ton aide

  9. #8
    jolindien

    Re : Problème interruption sur PIC16F

    Donc le problème venait bien de là:
    en ajoutant
    Code:
    IOCB.F4 = 1;       //IRQ port b4
    Plus de problème; merci encore

Discussions similaires

  1. Probleme Interruption proton plus compiler
    Par MorpheusPic dans le forum Électronique
    Réponses: 31
    Dernier message: 08/08/2008, 12h19
  2. Interruption en assembleur sur C167
    Par Nellie Oleson dans le forum Électronique
    Réponses: 0
    Dernier message: 31/01/2008, 17h25
  3. adresse de retour interruption sur PIC
    Par arzew dans le forum Électronique
    Réponses: 24
    Dernier message: 19/11/2007, 12h12
  4. Interruption sur PIC18F252 en langage C
    Par induc dans le forum Électronique
    Réponses: 1
    Dernier message: 18/05/2006, 10h24
  5. Probleme d'affichage LCD avec PIC16F
    Par KaLas dans le forum Électronique
    Réponses: 2
    Dernier message: 08/11/2005, 19h17
Découvrez nos comparatifs produits sur l'informatique et les technologies.