Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 38 sur 38

Prendre 2 valeur du timer



  1. #31
    Darkross

    Re : Prendre 2 valeur du timer


    ------

    Enfin de compte on a quand meme réussi a afficher le nombre d'impulsion du timer entre 2 appuye sur RC2

    On a rajouté une variable qui s'incrémente a chaque débordement du timer1 et que l'on multiplie par 65536 et qu'on additionne a la variable ccp, et maintenant on voudrais la convertir en seconde et l'affichué puis enfin de la mettre en fréquence mais la convertir en seconde serait pas mal

    Et je ne comprend pas quelque chose dans un post précédent vous disiez que le temps d'une impulsion était de 5µs alors que 1/8*10^6 fait 0,125 µs

    -----

  2. Publicité
  3. #32
    vede

    Cool Re : Prendre 2 valeur du timer

    Citation Envoyé par Darkross Voir le message
    Enfin de compte on a quand meme réussi a afficher le nombre d'impulsion du timer entre 2 appuye sur RC2

    On a rajouté une variable qui s'incrémente a chaque débordement du timer1 et que l'on multiplie par 65536 et qu'on additionne a la variable ccp, et maintenant on voudrais la convertir en seconde et l'affichué puis enfin de la mettre en fréquence mais la convertir en seconde serait pas mal

    Et je ne comprend pas quelque chose dans un post précédent vous disiez que le temps d'une impulsion était de 5µs alors que 1/8*10^6 fait 0,125 µs
    je parlais du temps d'une instruction
    qui est de 0,5µs avec Fosc = 8Mhz...
    avec un 16Fxxxx....

    mais faudrait commencer par savoir dans quelle plage
    de période/fréquence tu veux faire des mesures...

    56454445
    3B4F29
    ______________________________ __________
    46554D4552204E4520545545205041 53203B4F29
    Dernière modification par vede ; 27/03/2010 à 23h34.

  4. #33
    blurpy

    Re : Prendre 2 valeur du timer

    Bonsoir,

    Si la valeur de la période à mesurer est trop grande on peut aussi utiliser l'interruption du Timer1 pour compter le nombre de dépassement du buffer du timer.

  5. #34
    vede

    Cool Re : Prendre 2 valeur du timer

    Citation Envoyé par blurpy Voir le message
    Bonsoir,

    Si la valeur de la période à mesurer est trop grande on peut aussi utiliser l'interruption du Timer1 pour compter le nombre de dépassement du buffer du timer.
    Bonsoir blurpy,

    on dirait que c'est ce qu'il fait déjà (cf post au dessus)

    et cette solution (mesurer des périodes supérieures
    à 32ms(@8Mhz) avec le Timer1 sans Prescaler) peut finir par
    générer des calculs 32 bits très très longs pour un PIC 8bits...

    c'est pourquoi il serait bon de connaître la plage/précision désirée...
    avant de continuer...

    56454445
    3B4F29
    ______________________________ __________
    46554D4552204E4520545545205041 53203B4F29

    ps:
    le Timer1 s'incrèmente à chaque instruction...
    une instruction "dure(s)" 4/Fosc...

  6. #35
    blurpy

    Re : Prendre 2 valeur du timer

    Bonsoir vede,

    Effectivement j'ai sauté cette réponse.

    Pour la durée de calcul on peut "tricher", par exemple on releve le temps de X périodes brutes (nombre d'overflow + valeur timer dans des variables séparée), ensuite on calcul les périodes completes, on les moyenne puis on calcul la période/fréquence effective.

    On pourrait meme faire mieux si les périodes sont vraiment longues :
    - on releve une premiere période
    - on démarre le relevé d'une 2eme periode
    - en attendant l'interruption on effectue les calculs sur la premiere periode
    - on boucle

  7. #36
    vede

    Cool Re : Prendre 2 valeur du timer

    re ;O]

    en effet blurpy, c'est ce qu'on pourrait faire...
    pour "rester" sur max 16bits dans les calculs...
    et pour "mesurer" des périodes de plusieurs secondes...
    ce avec une précision au millionième ;O]

    mais moi je veux connaître la plage/précision ;O]
    et ça simplifiera sûrement les calculs ;O] pov'pic ;O]

    56454445
    3B4F29
    ______________________________ __________
    46554D4552204E4520545545205041 53203B4F29

  8. Publicité
  9. #37
    vede

    Cool Re : Prendre 2 valeur du timer

    Hi Dark,

    envoyes aussi ton code utilisant l'INT sur CPP1 (RC2)...
    ça peut interesser du monde...

    sinon j'ai testé (en réel, j'suis un "vrai" moi ;O] ;O])
    le code ci-dessous... et ce testé avec succès... à la us prés ;O]
    ça m'affiche réellement 500us quand j'injecte 2Khz-carré (50/50) sur RB0 ;O]

    Code:
    program periodemetresurrb0_pic4Mhz
    '  DECLARATION DES VARIABLES
    dim varword as word
    dim t1h, t1l as byte
    ' INTERRUPTION SUR IMPULSION SUR RB0
    sub procedure interrupt
        t1h   =  TMR1H  ' "enregistre" le temps écoulé (en us @ 4Mhz)
        t1l   =  TMR1L
        INTCON.INTF = 0 ' re-active interruption sur RB0
        TMR1H = 0       ' re-initialise le temps
        TMR1L = 11      ' re-initialise le temps (+11us = backups regs)
    end sub
    ' DEBUT DU PROGRAMME
    main:
    ' INITIALISATION DU PIC
    ANSEL  = %00000000  ' désactive ADC dans un 16F88
    TrisB  = %00000001  ' port RB0 en entrée
    T1CON  =   %000001  ' activation du TMR1, avec PreScaler=1
    INTCON = %11010000  ' active interruption sur RB0 (entrée)
    ' PROGRAMME PRINCIPAL (dans une boucle infinie)
    while true
        varword = t1h     * 256
        varword = varword + t1l
        ' LCD_OUT(varword + "us")
    wend
    end.
    re-bon'dimanche zà toutes zé za tous,
    vede
    ;O]
    ______________________________ _______
    c'est trop fatigant de coder les dictons en ascii ;O]
    Dernière modification par vede ; 28/03/2010 à 07h44.

  10. #38
    vede

    Cool Re : Prendre 2 valeur du timer

    Edit :

    et pour "mesurer" des fréquences inférieures à 15Hz...
    avec une "précision" de 1µs, ben suffit de rajouter un compteur...
    mais là attention aux calculs 32bits finaux...

    et on va dire qu'avec Fosc=4Mhz, on ne pourra "mesurer"
    plus de 20Khz (50 théoriques)...

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. Valeur discrète, valeur continue
    Par YABON dans le forum Mathématiques du supérieur
    Réponses: 12
    Dernier message: 19/12/2014, 21h04
  2. Réponses: 0
    Dernier message: 08/03/2009, 18h41
  3. timer
    Par vindalou dans le forum Électronique
    Réponses: 2
    Dernier message: 24/02/2007, 14h00
  4. Timer....??
    Par bimo dans le forum Logiciel - Software - Open Source
    Réponses: 14
    Dernier message: 15/09/2006, 16h18
  5. Prendre ou pas prendre le Fucus?
    Par wind0013 dans le forum Biologie
    Réponses: 0
    Dernier message: 21/06/2006, 22h07
Découvrez nos comparatifs produits sur l'informatique et les technologies.