PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeitmessung



Sahra
09.10.2004, 17:24
Hallo,

ich habe ein Problem mit einer Zeitmessung. Es handelt sich um eine Geschwindigkeitsmessung mittels 2 in einem bestimmten Abstand montierten Lichtschranken. Um die Geschwindigkeit zu errechnen brauche ich die Zeit zwischen dem Auslösen der 1. und dem Auslösen der 2. Lichtschranke. Beide sollen am gleichen Interrupt-Pin des AVR angeschlossen werden. Also müsste die Zeit zwischen 2 Interrupts gemessen werden. Alles was ich bisher in Erfahrung gebracht habe ist dass man hierfür die Interenen Timer verwenden muss. Allerdings komme ich hier nicht weiter da man da irgenwelche Prescaler, Resetwerte... einstellen muss.

Über Hilfe jeglicher Art würde ich mich sehr freuen
Sahra

x-ryder
09.10.2004, 23:25
Hier hab ich das ganze schon mal erläutert wenn du nix damit anfangen kannst... frag ruhig! :cheesy:

EDIT: nu hab ich doch glatt den Link vergessen... https://www.roboternetz.de/phpBB2/viewtopic.php?p=16835

Martin

11.10.2004, 10:06
Hi x-ryder,

wie du schon vermutet hast kann ich leider damit nichts anfangen da mir irgendwie der Einstieg fehlt. Ich würde einen Code brauchen in dem der Timer beim 1. Interrupt anfängt zu zählen, beim 2. Aufhört und dann die Zeit daraus errechnet wird. Habe dazu weder in der Bascom Hilfe noch beim Googlen was gefunden.

Vielen Dank schon mal für deine bisherige und hoffentlich weitere Hilfe

12.10.2004, 17:33
Wie wäre es hiermit ?
Habe ich schon getestet, funktioniert.


$crystal = 4000000
Config Timer1 = Timer , Prescale = 64 '4MHz/64 = 62500
Const Timer_start = 6250 'alle 100ms Überlauf
Load Timer1 , Timer_start
Enable Timer1
On Timer1 Int_1

Do
wenn Lichtschranke 1, dann Takt = 0
wenn Lichtschranke 2, dann Wert = Takt in 1/100 Sek
Loop

Int_1:
Load Timer1 , Timer_start
Incr Takt
Return