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

Timer2 PIC16F



  1. #1
    olivier_elec

    Timer2 PIC16F


    ------

    bonjour à tous,

    je voulais être sûr de mon timer2,

    je possède un PIC16F877 mon quartz fait 4MHz
    et je souhaite le faire sur une base de 1ms afin de pouvoir choisir x.ms une fois configuré.

    je rappelle la formule: Ttmr2 = (PR2+1).(1/K1).4.Tosc

    http://ecl.ac-orleans-tours.fr/lyc-m...timer2_pic.PDF

    Pour vérifier si mon timer2 est OK je veux regarder si j'ai des créneaux de 1ms à l'oscilloscope (sur une led par exemple).

    voici le bout du programme:

    void init_timer2(void);

    /*****************************p rogramme principal********************* *********/
    void main(void) //test: voyons si timer 0 est a 1ms
    {
    PORTB.0=1; //allume led
    tempoxms(1);
    PORTB.0=0; //éteint led
    tempoxms(1);

    while(1)
    }


    /****************************** ******Timer2****************** ******************/
    void init_timer2(void)
    {
    T2CON=0x04; // Timer2 activé, prescaler à 1
    PR2=63; // Valeur de 1ms
    TMR2IF=0; // flag repasse à 0
    while (TMR2IF==0); // Attente falg
    }

    void tempoxms(uns16 t)
    {
    uns16 temps; // Choisir temps sur une base de 1ms avec le paramètre t
    t=1;
    for (temps=0;temps<t;temps++)
    {
    init_timer2();
    }
    }


    je pense que le programme ne marche pas car je ne capte pas de tension carré à l'oscillo.. aidez-moi svp!

    merci.

    -----
    in vino veritas

  2. Publicité
  3. #2
    RISC

    Re : Timer2 PIC16F

    Salut,

    Il manque pas mal de choses dans ton programme...notamment l'initialisation des ports d'E/S...
    Je te recommande de lire le cours sur les PIC16 ici

    bonne lecture
    a+

  4. #3
    olivier_elec

    Re : Timer2 PIC16F

    les ports d'E/S sont fait sur le port B... Quoi d'autres ?
    in vino veritas

  5. #4
    schmo

    Re : Timer2 PIC16F

    salut,

    Ta gestion du timer 2, je la ferais comme ça:
    1/ T2CON = 0 : stop le timer
    2/ PR2=63 : initialisation de la durée
    3/ TMR2 = 0 : raz compteur
    4/ TMR2IF=0 : raz flag
    5/ T2CON= 4 : mise en route du timer

    6/ Test flag


    A+

  6. A voir en vidéo sur Futura
  7. #5
    Gérard

    Re : Timer2 PIC16F

    Tu as oublié PIR1 et INTCON.
    Tu attends TMR2IF qui ne viendra jamais si tu ne valides pas l'interruption.

  8. #6
    vede

    Cool Re : Timer2 PIC16F

    salut,

    et moi je ferais une période de 500ms
    pour aisément visualiser et vérifier le résultat
    (clignotement @ 1Hz) via une simple led...

    vede
    ;O]
    _______________
    ...

  9. Publicité
  10. #7
    vede

    Cool Re : Timer2 PIC16F

    re ;O]

    en neffet... (bien vu Gérard ;O])...
    donc soit tu interruptionnes...
    soit tu testes directement TMR2, au lieu du flag TRM2IF...

    vede
    ;O]
    ______________
    ...

  11. #8
    RISC

    Re : Timer2 PIC16F

    Salut,
    Citation Envoyé par olivier_elec Voir le message
    les ports d'E/S sont fait sur le port B... Quoi d'autres ?
    Tu as lu mon post en diagonale....grosse erreur
    Et les registres TRISB as-tu déjà entendu parler ....

    Lis la documentation....

    a+

Discussions similaires

  1. PIC16f628 : timer0 et timer2 combinés
    Par sabaks dans le forum Électronique
    Réponses: 3
    Dernier message: 20/08/2009, 22h43
  2. Pic18f2525 pwm et timer2
    Par Haox dans le forum Électronique
    Réponses: 3
    Dernier message: 01/06/2009, 19h30
  3. Problème PIC16F
    Par black templar dans le forum Électronique
    Réponses: 7
    Dernier message: 15/05/2009, 19h10
  4. Audio pic16f....
    Par NessaVi dans le forum Électronique
    Réponses: 1
    Dernier message: 05/03/2009, 11h04
  5. Horloge à PIC16F
    Par nainpiain dans le forum Électronique
    Réponses: 32
    Dernier message: 08/02/2009, 20h38
Découvrez nos comparatifs produits sur l'informatique et les technologies.