Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

Mesurer la durée d'une opération avec un timer
Marty_and_Doc
Membre
Membre
Messages : 2
Enregistré en : février 2016

#1 Message par Marty_and_Doc » mar. 23 févr. 2016 19:21

Bonjour,
Je cherche à mesurer la durée d'une instruction d'un PIC18F452 avec le TIMER0.
Pour l'instant j'ai mesurer la valeur de TMROL (3) mais je ne sais pas comment déterminer la durée en secondes grâce à ça :roll:

Voici le code:

Code : Tout sélectionner

#include <p18f452.h>
#include "fonc.h"


#pragma config OSC = HS
#pragma config PWRT = ON
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config DEBUG = ON
#pragma config LVP = OFF

void main(void)
{
    double va;
    TRISD = 0x00;
    PORTD = 0x00;
    T0CON = 0b01000110;
    TMR0L = 0;
    INTCONbits.TMR0IF = 0;
    T0CONbits.TMR0ON = 1;
    va = 11.3/26.89;
    T0CONbits.TMR0ON = 0;


Quelqu'un pourrait m'aider ?

Merci d'avance pour vos réponse :)


EDIT: voila la Datasheet du PIC :)
http://ww1.microchip.com/downloads/en/D ... 39564c.pdf
Modifié en dernier par Marty_and_Doc le mar. 23 févr. 2016 20:40, modifié 1 fois.

Mesurer la durée d'une opération avec un timer
Jérémy
Administrateur du site
Administrateur du site
Messages : 2727
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#2 Message par Jérémy » mar. 23 févr. 2016 19:36

Bonsoir Marty_and_Doc ,

Bienvenue sur le forum fantasPIC.

Pour faire mon rabat-joie, je te propose de mettre le lien vers la Data-sheet de ton PIC pour faciliter la réponses des forumeurs : suivre ce lien . tu devrais pouvoir éditer ton post ( le petit crayon en haut à droite)

Il faudrait également précisé ton environnement de travail ? je penche pour MikroC ?

Après j'avoue ne pas avoir trop compris ta question ? Le temps d'une instruction il me semble est en rapport avec l'Oscillateur utilisé . Une instruction demande 4 coups d'horloge . l'horloge étant déterminé par le quartz ou l'OSC.

Je laisse un expert approfondir, je ne suis pas forcement très sûr de moi !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Mesurer la durée d'une opération avec un timer
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#3 Message par Guest » mar. 23 févr. 2016 20:24

bonsoir

Je ne sais pas si c'est un exercice ou un besoin .
car le timer sans passer par un diviseur va battre(decompter) au rythme de ce que tu veux mesurer.

un peu plus d'explication peut-être.

Il y a bien une possibilité par l’oscillateur externe quelle est le but?

Mesurer la durée d'une opération avec un timer
Marty_and_Doc
Membre
Membre
Messages : 2
Enregistré en : février 2016

#4 Message par Marty_and_Doc » mar. 23 févr. 2016 20:47

maï a écrit :bonsoir

Je ne sais pas si c'est un exercice ou un besoin .
car le timer sans passer par un diviseur va battre(decompter) au rythme de ce que tu veux mesurer.

un peu plus d'explication peut-être.

Il y a bien une possibilité par l’oscillateur externe quelle est le but?


Bonsoir,
En fait il s'agit d'un exercice, je dois mesurer la durée d'une opération grâce à un Timer,
je pense avoir réussit à mesurer la durée , le problème c'est juste la conversion en secondes,
J'ai configurer le timer en 8bits, la prescaler value à 128 et j'ai une periode Tcycle de 0.4 micro secondes

Une idée sur le calcul à accomplir ?

Mesurer la durée d'une opération avec un timer
mazertoc
Passionné
Passionné
Messages : 201
Enregistré en : juillet 2015
Localisation : Auvernha

#5 Message par mazertoc » mer. 24 févr. 2016 10:54

Marty_and_Doc a écrit :En fait il s'agit d'un exercice, je dois mesurer la durée d'une opération grâce à un Timer,
je pense avoir réussit à mesurer la durée , le problème c'est juste la conversion en secondes,
J'ai configurer le timer en 8bits, la prescaler value à 128 et j'ai une periode Tcycle de 0.4 micro secondes

Une idée sur le calcul à accomplir ?

C'est quoi "opération" ?

Le temps, représenté par la valeur N dans TMR0, correspond à (N.prédiv.Tcy) s.
Dans ton cas c'est (Nx128x0,4) µs

Mesurer la durée d'une opération avec un timer
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#6 Message par Guest » mer. 24 févr. 2016 12:21

bonjour

la durée entre la mise en route (M) et arrêt(A] du timer est égale a C= M-A ou C est le NB de de_incrémentation du timer
le temps d’exécution d'une opération est égal :TE=CxTcy

Pour un 18F le Tcy=1/4 de la fréquence oscillateur

exemple: Tcy a 4Mhz =1µS

si C=12(0XFF-0XF3=0XC)

TE=12X1µs=12µs

Suivant ce que tu veux mesurer prendre un compteur 16 bits ou a défaut passer par un diviseur si passe par un diviseur dans le calcul en tenir compte.
Un conseil faire démarrer le compteur a un 0XFF pour un 8 bits et éventuellement tenir compte de mise et arret timer

voila j’espère que c'est ce que tu cherches et entre nous c'est le B A BA d'un timer

A+
Modifié en dernier par Anonymous le mer. 24 févr. 2016 14:45, modifié 4 fois.

Mesurer la durée d'une opération avec un timer
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#7 Message par Guest » mer. 24 févr. 2016 14:15

Je viens de jeter un œil sur ton opération, elle est sur les flottants et de plus est avec une division, on est dans la tranche des centaines de mS.
Donc si possible passer sur timer 16 bits avec un diviseur ou pré diviseur, a toi de voir avec cela

tu es libre dans le choix du soft? si oui la possibilité de passer par INT avec compteur

A+

Mesurer la durée d'une opération avec un timer
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#8 Message par Guest » ven. 26 févr. 2016 08:46

Bon a priori le devoir a était rendu ;)

Mesurer la durée d'une opération avec un timer
Jérémy
Administrateur du site
Administrateur du site
Messages : 2727
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#9 Message par Jérémy » ven. 26 févr. 2016 10:39

Oui , a priori ! :(

C'est le lot de tout les forums, certains donne une suite, le résultat, des photos etc .... d'autres prennent l'info et s'en vont ! C'est malheureux mais c'est comme ça . y'a pas grand chose a faire, si ce n'est l'éducation !

Mais peut être qu'on lui a coupé internet, que son PIC à mouru ..... restons sur le bénéfice du doute :D
C'est en faisant des erreurs, que l'on apprend le mieux !!!


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 127 invités