Problème interruption sur PIC16F
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Problème interruption sur PIC16F



  1. #1
    invitedccdd0e0

    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
    invite172affa9

    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
    invitedccdd0e0

    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
    invitea34e7140

    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
    invitedccdd0e0

    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
    invitedccdd0e0

    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
    invitedccdd0e0

    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 invitee5da1686 dans le forum Électronique
    Réponses: 31
    Dernier message: 08/08/2008, 13h19
  2. Interruption en assembleur sur C167
    Par invitea46278c1 dans le forum Électronique
    Réponses: 0
    Dernier message: 31/01/2008, 18h25
  3. adresse de retour interruption sur PIC
    Par invite5396f733 dans le forum Électronique
    Réponses: 24
    Dernier message: 19/11/2007, 13h12
  4. Interruption sur PIC18F252 en langage C
    Par invite23732d21 dans le forum Électronique
    Réponses: 1
    Dernier message: 18/05/2006, 11h24
  5. Probleme d'affichage LCD avec PIC16F
    Par invitef5cbe902 dans le forum Électronique
    Réponses: 2
    Dernier message: 08/11/2005, 20h17
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...