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

Utilisation TIMER0 PIC18



  1. #1
    Pilou81

    Utilisation TIMER0 PIC18


    ------

    Bonjour,

    Une question toute bête de base, je cherche à faire un petit chronomètre pour mesurer un intervalle de temps sur une mesure avec un PIC18F4525. Je pense utiliser le Timer 0 en mode 16bits puis de compter ses débordements. Pour ce faire je comptait faire un préchargement du registre propre au timer 0 mais c'est là que ça coince. J'utilise un quartz 10Mhz sur mon PIC donc je pensait compter les débrodements toute les 1ms, pourriez-vous m'aider pour la configuration des registres T0CON et TMR0H/TMR0L. Je pensais mettre:
    Pour la valeur du préchargement: 1ms <-> (4x1ms)/Tosc = 40000
    d'ou un preload de 65536 - 4000 = 25536 = 0x63C0
    TMR0H = 0x63
    TMR0L = 0xCO
    T0CON = 0x88
    Mais le chronomètre obtenu n'est pas bon, je pense à un probleme de config, pourriez-vous m'aider?

    -----

  2. Publicité
  3. #2
    vede

    Cool Re : Utilisation TIMER0 PIC18

    Bonjour,

    avec un Quartz 10Mhz, TCycle = 0.4uS...
    donc pour avoir un débordement au bout de 1ms (1000us)
    il faut "positionner" le Timer0 sur 2500 (x0.4=1000),
    enfin plutôt 65536 - 2500 = 63036...
    soit :
    TMR0H = 246;
    TMR0L = 60;

    vede
    ;O]
    ______________
    ...

    ps : tout ça avec Prescaler = 1...

  4. #3
    Pilou81

    Re : Utilisation TIMER0 PIC18

    Peux tu détailler ton 2500? puis le souci c'est qu'il faut obligatoirement un prescaler minimum de 1:2...

  5. #4
    vede

    Cool Re : Utilisation TIMER0 PIC18

    re ;O]

    ben je l'ai expliqué ci-dessus...
    à 10Mhz, TCycle (période d'une instruction) = 0,4us...
    donc pour "compter" 1ms(1000us) il faut compter jusqu'à 2500,
    car 2500 x 0,4us = 1ms...

    si tu es obligé d'utiliser le Precaler = 2, ben tu divises ta valeur par 2,
    soit ici 2500 / 2 = 1250...

  6. #5
    Pilou81

    Re : Utilisation TIMER0 PIC18

    ok bon ba visiblement c'est autre chose qui déconne dans mon programme, certainement les interruptions des débordements du timer. Lorsque je comptabilise les débordements, je n'obtient pas du tout ce que je cherche, je vais donc chercher autre part que dans le Timer, merci quand mm...

  7. A voir en vidéo sur Futura
  8. #6
    RISC

    Re : Utilisation TIMER0 PIC18

    Salut Pilou,

    Attention au TIMER0 qui fonctionne en mode 8 bits ou 16 bits. Je crois que par défaut il est en mode 8 bits (Legacy compatible PIC16).
    Peux-tu nous faire voir ton code ?
    Comment as-tu programmé les bits de configuration ?
    a+

  9. Publicité
  10. #7
    Pilou81

    Re : Utilisation TIMER0 PIC18

    voicu une petite partie de mon code:
    Code:
                      INTCON.TMR0IF=0;
                      INTCON.TMR0IE=1;
                      INTCON.PEIE=1;
                      INTCON.GIE=1;
                      TMR0H = 0xFB;   
                      TMR0L = 0x1E;      
                      T0CON = 0x88;
    puis pour l'interruption:
    Code:
    void interrupt(){
    if(INTCON.TMR0IF){
        TIMER0_Over = TIMER0_Over + 1;
        INTCON.TMR0IF = 0;
        }    
     }
    Le Timer se déclenche bien mais le temps mesuré est complètement faux...

  11. #8
    RISC

    Re : Utilisation TIMER0 PIC18

    Salut,

    Tu as tout simplement oublié de recharger le TIMER0 dans l'interruption...
    Le seul TIMER autoreload dans les PIC18 est le TIMER2

    a+

Sur le même thème :

Discussions similaires

  1. timer0 pic18f4550
    Par titoff dans le forum Électronique
    Réponses: 20
    Dernier message: 26/08/2009, 22h47
  2. Timer0
    Par 1ergel dans le forum Électronique
    Réponses: 6
    Dernier message: 08/06/2009, 19h16
  3. Pic 16f887 timer0
    Par Snoopy85 dans le forum Électronique
    Réponses: 30
    Dernier message: 11/03/2009, 08h43
  4. Timer1 et timer0
    Par guifou dans le forum Électronique
    Réponses: 4
    Dernier message: 18/01/2009, 06h16
  5. 4 secondes Timer0
    Par bimo dans le forum Électronique
    Réponses: 8
    Dernier message: 29/06/2006, 15h53
Découvrez nos comparatifs produits sur l'informatique et les technologies.