Composants delphi + mesure fréquence

cs_genoa Messages postés 8 Date d'inscription jeudi 5 janvier 2006 Statut Membre Dernière intervention 30 septembre 2012 - 28 févr. 2006 à 16:15
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 - 3 mars 2006 à 13:37
J'aimerais afficher diverses informations sous forme de cadran à
aiguille, d'afficheur numérique en controlant le format du nombre
affiché, et aussi sous forme de jauge.

Je voudrais aussi mesurer la fréquence d'un signal qui arrive sur le port parallèle (ou le port série) du pc.

merci

5 réponses

jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
28 févr. 2006 à 17:32
salut,

j'ai loupé un morceau de ta question.

je ne pense pas qu'il soit possible de mesurer la fréquence d'un signal
arrivant sur le port // ou le port série. En effet tu ne peux accéder à
ces ports que les API windows (ou par de dll ce qui revient au même) or
la gestion des API par windows font que tu ne seras jamais sur de
l'instant qui à déclenché l'évènement et que par conséquent pour tu ne
pourras pas déternimer d'une façon précise l'intervalle entre 2
évènements consécutifs par contre tu peux compter le nombre
d'évènements reçu sur une période assez longue (>100ms pour
garder un bonne précision au timer). La procédure pourrais être celle ci

tu mets un compteur d'évèment à 0 tu lances un timer (par exemple 1s)
ainsi qu'une fonction qui récupère les transistions arrivant sur DCD de
la liaison série par exemple tu incremente ton compteur à chaque
transition dans l'évènement ontimer du timer tu récuper le compteur
donc la fréquence bon je te l'accorde ce n'est pas terrible.

une autre façon de mesurer la fréquence est de passer par la carte son.



@+

jlen
0
cs_genoa Messages postés 8 Date d'inscription jeudi 5 janvier 2006 Statut Membre Dernière intervention 30 septembre 2012
1 mars 2006 à 09:22
Merci à Jlen, je vais travailler avec tes indications

Genoa
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
3 mars 2006 à 09:11
Oui JLen, assez d'accord avec toi !

Pour rire, je dirais aussi avec Delphi 1 sous Windows 3.11 !
On a depuis beaucoup perdu le contact avec le matériel, alors que là on pouvait programmer les périphériques (Port[x]), accéder à la mémoire (Mem[x:y]) et même détourner les interruptions (GetIntVec et SetIntVec).

Ken@vo

<hr size="2" width="100%">Code, Code, Codec !

[%3C/body ]
0
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 2
3 mars 2006 à 13:04
Ahhh la belle époque des PEEK et POKE

gnh !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
3 mars 2006 à 13:37
oui Kenavon tant que windows était une couche logicielle supplémentaire
on pouvait toujours s'en sortir en passant par le dos ou des
instructions inline ( gare aux apprentits sorciers inexpéeimentés )
mais depuis XP plus de dos et il bloque tout les accès directs aux
ports , ainsi qu'à la mémoire et autres ressources.

Mais on peut encore le faire dans des DLL.

Mais cela ne résoud pas l'absence de véritable timer temps réel sous
windows et dans le cas d'une DLL il faut tout traiter dedans et ne
récupérer le résultats si jamais ru repasses par windows c'est perdu.

En gros l'organisation de DLL pour mesurer la fréquence serait à peut près:

1 gestion d'interruption récuperant et comptant les évèments entrant.

1 gestion d'interuption sevant de base de temps.



on pourrais aussi utiliser faire un timer logiciel :

à la premiere impulsion on lance une boucle on l'on incrémente un compteur

l'interruption suivante interrompt le compteur.

Attention cela ne peut fonctionner que sur des pérdiodes tres courtes sous peine de voir windows protester violemment.



Personnellement pour ce genre de manip je préfère passer par un carte
d'acquisition (un simple microcontroleur à 2 balles et 10 lignes de
programme font l'affaire pour des fréquences<1MHz) aprés il faut
passer par des circuits spécialisés)



@+

jlen
0
Rejoignez-nous