| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
jloup Invité
|
Posté le: 08 Mai 2008 19:26 Sujet du message: "fonction chronomètre" (débutant inside^^) "fonction chronomètre" (débutant inside^^) |
|
|
Bonjour
Je réalise un projet en classe, un anémomètre à ultrasons.
Là j'attaque la programmation, mais je précise que je suis un débutant.Donc voilà en gros je cherche à determiner le temps que mettent les ultrasons pour aller de l'emmeteur au recepteur, sachant qu'ils fonctionnent avec des niveaux logiques: l'emission est déclenchée en envoyant un "1" logique à l'émetteur et le recepteur envoie un "1" logique dès qu'il reçoit le signal.
Le microcontrolleur utilisé est un atmel 8535 je crois (je vous confirme ça demain soir)
Donc mon problème est : Comment déterminer le temps écoulé entre l'émission du signal et la reception?
Merci d'avance à tous ceux qui répondront |
|
| Revenir en haut de page |
|
 |
marsu INSATIABLE


Inscrit le: 13 Juin 2005 Messages: 159 Localisation: Paris
|
|
| Revenir en haut de page |
|
 |
The Dude Invité
|
Posté le: 14 Mai 2008 22:39 Sujet du message: "fonction chronomètre" (débutant inside^^) |
|
|
Tu as deux solutions qui sont très simples pour faire ca.
La plus basique, si ton microcontrolleur n'a rien à faire d'autre que d'attendre que le signal revienne, c'est de faire une simple boucle qui incrémente une variable. Quand tu recois le signal tu sors de la boucle et tu regarde ou en est la variable. Connaissant la fréquence du contrtolleur et le nombre d'instructions par cycle tu peux en déduire le temps écoulé.
Attention par contre si tu programmes en C. Une instruction en C n'est pas égal à une instruction machine (ou ASM). Donc au choix tu regardes en combien d'instruction le prog fait ta boucle, ou tu étalonnes à la main.
La deuxième solution, pas vraiment plus complexe que la précédante mais qui nécéssite plus de connaissances c'est d'utiliser un timer et une interruption. Tu règles l'interruption pour se déclancher quand tu recoit un '1', puis tu regardes ou en est le timer.
L'avantage du timer c'est qu'il est indépendant du code, il s'incrémente tout seul à la vitesse que tu lui donne. Ca couplé à une interruption ca te permet de faire faire autre chose à ton controlleur pendant que tu attends le signal. |
|
| Revenir en haut de page |
|
 |
|
|
Vous pouvez poster de nouveaux sujets dans ce forum Vous pouvez répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum Vous ne pouvez pas joindre des fichiers Vous pouvez télécharger des fichiers
|
|