mesure de temps par PIC
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

mesure de temps par PIC



  1. #1
    invite2dd783e8

    mesure de temps par PIC


    ------

    Bonjour,

    je dois mesure le temps entre 2 impulsions sur RB0 avec un pic 16F877, je ne vois pas comment je pourrais utiliser le timer du PIC.

    Merci

    -----

  2. #2
    RISC

    Re : mesure de temps par PIC

    Salut,

    Tout dépend de la période minimale (?) que tu dois mesurer et de la précision que tu veux (horlgoe du micro = ?).
    Le plus simple est d'utiliser le mode capture sur l'unité CCP avec le timer1: broche RC2/CCP1 ou RC1/CCP2.

    Voir le cours de Bigonoff pour la façon d'utiliser cette unité qui mesure directement la période (fréquence) : www.bigonoff.org

    Si tu ne peux vraiment pas chnager de broche, il faudra faire cela par soft...c'est simplement moins facile, moins précis et cela demande un peu plus de resources CPU. Evidemment si ta période est longue cela ne pose aucun PB...

    a+
    Dernière modification par RISC ; 11/05/2008 à 17h02. Motif: addition

  3. #3
    invite2dd783e8

    Re : mesure de temps par PIC

    la période minimale est de 20 ms, ça peut tenir?

  4. #4
    RISC

    Re : mesure de temps par PIC

    Salut,

    De quelle précision as-tu besoin (en % ou us/ms) ?
    Quel oscillateur utilises-tu ? RC, quartz, résonnateur céramique, TCXO ?

    a+

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

    Re : mesure de temps par PIC

    J'utilise un résonateur à quartz et l'ideal serait une précision de 2 ms au plus

  7. #6
    RISC

    Re : mesure de temps par PIC

    Salut,

    2ms de précision ne pose absolument aucun problème et tu peux faire cela par logiciel sur la broche RB0.

    La méthode est la suivante (je prends l'exemple : de la mesure entre 2 fronts montants sur RB0)

    Initialiser le timer à 0

    Tu fais une boucle qui scrute le front montant sur RB0
    ---> RB0haut1 : RB0 = 1?

    Non --> goto RB0haut1
    Oui --> lancer timer

    RB0bas : RB0 = 0?
    Non --> goto RBbas
    Oui on continue ci-dessous

    Tu fais une 2e boucle qui scrute le 2e front montant sur RB0
    ---> RB0haut2 : RB0 = 1?

    Non --> goto RB0haut2
    Oui --> lire la valeur du timer (timer_valeur)

    Et tu as timer_valeur x periode du timer = temps entre fonts montants

    Pour le timer tu peux choisir timer 0, 1 ou 2 en fonction de la précision et de la simplicité que tu souhaites et de la fréquence de ton quartz
    timer1 est un bon candidat car il est sur 16 bits et possède un prediviseur par 8.
    Timer2 est également une autre possibilité (pre et postdiviseur par 16).

    En effet, en admettant que tu utilises la frequence max Fosc=20MHz, tu as donc Fcy= 5MHz (tcy = 200ns).
    Si tu veux mesurer avec une précision de 1ms il faut donc diviser par 5000 ce qui est nettement > 256 (division sur 8 bits). Le timer 1 ou le timer2 avec ses prescalers font le job.

    Attention : la méthode ci-dessus ne gère pas le dépassement tu timer (temps max entre 2 impulsions > temps max du timer). Si cela est possible il faut alors compliquer un peu le soft et gerer le depassement pas logiciel.

    NB : si tu n'as pas oblige d'utiliser RB0 (comme expliqué dans un de mes posts précédents) je te recommande l'utilisation de l'unité CCP beaucoup plus simple à mettre en oeuvre et beaucoup plus efficace en terme de programmation.

    a+

    PS : tu programmes en C ou en assembleur ?
    Dernière modification par RISC ; 12/05/2008 à 14h21. Motif: addition

  8. #7
    invite2dd783e8

    Re : mesure de temps par PIC

    merci beaucoup pour les indications. Je programme en assembleur.

    Aussi, J'ai un autre problème; j'ai omis de dire que mon programme est censé faire d'autres choses à la fois, notamment faire afficher régulièrement une vitesse calculée à partir de cette période. Donc je dois utiliser les interruptions je suppose?

  9. #8
    invite2dd783e8

    Re : mesure de temps par PIC

    De plus, j'ai vu sur la datasheet que le timer 2 est codé sur 8 bits. Je n'aurai donc pas choix sur le timer

Discussions similaires

  1. pic 18f452 @ 40Mhz, plantage de temps en temps
    Par invite9426e977 dans le forum Électronique
    Réponses: 27
    Dernier message: 04/04/2008, 21h19
  2. Mesure du temps
    Par invite7f917889 dans le forum Physique
    Réponses: 1
    Dernier message: 13/01/2008, 11h39
  3. mesure de temps en c++
    Par invitef666d0fa dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 10/12/2006, 20h49
  4. Mesure du temps
    Par invite18b84135 dans le forum Technologies
    Réponses: 1
    Dernier message: 07/11/2006, 07h59
  5. Mesure du temps
    Par invited2361d07 dans le forum Physique
    Réponses: 9
    Dernier message: 03/09/2004, 20h52
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...