Conversion Timer ==>temps
Fermé
flolarajasse
Messages postés
103
Date d'inscription
jeudi 12 novembre 2009
Statut
Membre
Dernière intervention
23 juin 2011
-
16 févr. 2010 à 12:42
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 16 févr. 2010 à 14:03
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 16 févr. 2010 à 14:03
Bonjour,
J'ai réalisé un programme en C qui est censé calculer la durée entre 2 impulsions sur une patte de mon PIC(signal carré fournit grâce à un GBF, fréquence quelconque).Pour cela, je me suis servit du Timer1 de mon PIC.Exemple, lorsque je suis à 1Hz, le programme m'affiche 39080 ; ma question est : quelle est l'équation qui permet de trouver la durée entre mes deux impulsions?(logiquement 1Hz donc 1 seconde)!
Je peux vous poster le programme si vous voulez.
Merci
J'ai réalisé un programme en C qui est censé calculer la durée entre 2 impulsions sur une patte de mon PIC(signal carré fournit grâce à un GBF, fréquence quelconque).Pour cela, je me suis servit du Timer1 de mon PIC.Exemple, lorsque je suis à 1Hz, le programme m'affiche 39080 ; ma question est : quelle est l'équation qui permet de trouver la durée entre mes deux impulsions?(logiquement 1Hz donc 1 seconde)!
Je peux vous poster le programme si vous voulez.
Merci
A voir également:
- Conversion Timer ==>temps
- Renommer plusieurs fichiers en même temps - Guide
- Combien de temps reste une story sur facebook - Guide
- Temps pour soi iphone - Guide
- Shutdown timer - Télécharger - Personnalisation
- Monnaie conversion - Télécharger - Banque & Budget
3 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
16 févr. 2010 à 13:29
16 févr. 2010 à 13:29
Bonjour,
Si j'ai compris...je ne connaîs plus le C mais comme tu demande l'algo, le voila en VB
Résultat >> 10:51:20
A+
Si j'ai compris...je ne connaîs plus le C mais comme tu demande l'algo, le voila en VB
Sub HMS() Dim NbS As Long Dim Heure As Double, Minute As Double, Seconde As Integer NbS = 39080 Heure = Fix(NbS / 3600) Minute = Fix((NbS - (Heure * 3600)) / 60) Seconde = NbS - (Heure * 3600) - (Minute * 60) End Sub
Résultat >> 10:51:20
A+
flolarajasse
Messages postés
103
Date d'inscription
jeudi 12 novembre 2009
Statut
Membre
Dernière intervention
23 juin 2011
14
16 févr. 2010 à 13:31
16 févr. 2010 à 13:31
pardon à 1Hz il affiche 59300 cycles. J'ai procédé à quelques calculs mais je ne retombe pas sur mes pattes :
Fréquence interne =40MHz /4/8(pré-diviseur réglé à 8 dans mon programme)
=1,25MHz ==> donc la durée d'un cycle est 0,8µs.
Or 59300 cycles * 0,8µs n'est pas égal à 500ms( moitié de ma période).Si vous voyez d'où mon erreur provient, faites signe.
Merci =)
Fréquence interne =40MHz /4/8(pré-diviseur réglé à 8 dans mon programme)
=1,25MHz ==> donc la durée d'un cycle est 0,8µs.
Or 59300 cycles * 0,8µs n'est pas égal à 500ms( moitié de ma période).Si vous voyez d'où mon erreur provient, faites signe.
Merci =)
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
16 févr. 2010 à 14:03
16 févr. 2010 à 14:03
Ca change tout a fait de ce que tu dis dans ton premier poste !!
Tu dois mettre la période de saisie à 0,001 seconde au lieu de 1seconde et adapter les calculs en fonctions.
Mais avec les arguments que tu donne tu devrais avoir des résultats en 1000ièm de seconde .. Non ?
NB : il y une API windows qui peu te calculer ça façilement. J'ai pas le nom sous la main mais si ça t'intéresse je la rechercherais.
Edit : l'API c'est...
Calcul en millionième de seconde
Tu dois mettre la période de saisie à 0,001 seconde au lieu de 1seconde et adapter les calculs en fonctions.
Mais avec les arguments que tu donne tu devrais avoir des résultats en 1000ièm de seconde .. Non ?
NB : il y une API windows qui peu te calculer ça façilement. J'ai pas le nom sous la main mais si ça t'intéresse je la rechercherais.
Edit : l'API c'est...
Public Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long
Calcul en millionième de seconde