timer1 asynchrone avec PIC12F675
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

timer1 asynchrone avec PIC12F675



  1. #1
    Massaddict

    timer1 asynchrone avec PIC12F675


    ------

    Bonjour,
    Je débute en programmation de microcontrôleur et je cherche a utiliser un timer avec un oscillateur externe (un quartz 4MHz). Le microcontrôleur utiliserait l'oscillateur interne et le timer serait sur l'oscillateur externe mais mon problème c'est que j'arrive à faire clignoter ma LED si je met le timer sur l'oscillateur interne mais pas avec le quartz. Je pense que mon problème vient des registre mais je n'arrive pas à trouver ce que je fait faux.
    Code:
    #include<htc.h>
    
    // Config word
    __CONFIG(FOSC_INTRCCLK & WDTE_OFF & PWRTE_ON & MCLRE_OFF & BOREN_ON & CP_OFF & CPD_OFF);
    
    // Define CPU Frequency
    #define _XTAL_FREQ   4000000    
    
    void InitTimer1(void)
    {
        TMR1H = 0;  //Byte de poid fort de la valeur courante du timer
        TMR1L = 0;  //Byte de poid faible de la valeur courante du timer
        
        T1IF = 0;   //Timer1 a dépassé la valeur max
        T1IE = 1;   //(Interrupt enable bit) Quand le timer dépasse il déclenche une fonction de type interrupt
        PEIE = 1;   //Active les interruptions
        GIE = 1;    //Active les interruptions venant des périphétiques interne de PIC
        
        T1CON = 0b00001111; // ICI QUAND JE MET 0b00000001 CA FONCTIONNE MAIS AVEC L'OSCILLATEUR INTERNE
    }
    
    // Define LED pin
    #define LED  GP2 
    
    unsigned long compteur = 0;
    
    void interrupt Toggle()
    {
        if(T1IF)
        {        
            compteur = compteur + 1;
            
            if (compteur == 1)
            {
                LED = ~LED;
                T1IF = 0;
                compteur = 0;
            }
        }
    }
    
    // Main function
    void main()
    {        
            ANSEL  = 0x00;       // Set ports as digital I/O, not analog input
            ADCON0 = 0x00;                 // Shut off the A/D Converter
            CMCON  = 0x07;                 // Shut off the Comparator
            VRCON  = 0x00;             // Shut off the Voltage Reference
            TRISIO = 0x08;       // GP3 input, rest all output
            GPIO   = 0x00;       // Make all pins 0
            
            InitTimer1();
            
            while(1)
            {
            }
    }
    Le programme est très simple il fait juste clignoter une LED.
    Voilà, pour info j'utilise MPLAB X V3.0 beta 2 avec un Pickit 2.
    Merci d'avance.

    -----

  2. #2
    spown

    Re : timer1 asynchrone avec PIC12F675

    Bonjour/bonsoir est bienvenue sur FUTURA,



    Le TIMER1 il fonctionne juste avec LP ( low power ) crystal (32 Khz ), mets 2 capa de valeurs entre 68 et 100 pF, à toi de jouer.

  3. #3
    Massaddict

    Re : timer1 asynchrone avec PIC12F675

    Ok, merci pour l'info et merci de m'avoir aidé.
    Bonne soirée et bon week-end

Discussions similaires

  1. probleme avec timer1 comme un capteur de vitesse
    Par inviteb0c08558 dans le forum Électronique
    Réponses: 1
    Dernier message: 29/12/2010, 15h31
  2. PIC18F6722 - Problème avec le Timer1
    Par jorg1n dans le forum Électronique
    Réponses: 5
    Dernier message: 05/08/2010, 08h47
  3. interruption avec timer1
    Par invite29c140ac dans le forum Électronique
    Réponses: 26
    Dernier message: 05/04/2009, 16h14
  4. réveiller mon pic avec timer1?
    Par Mikaeltrigo dans le forum Électronique
    Réponses: 3
    Dernier message: 11/03/2008, 08h15
  5. Probleme avec Timer1 sur 16F876
    Par Peter dans le forum Électronique
    Réponses: 4
    Dernier message: 27/12/2006, 15h02
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...