Zeitmessung in Bascom??

Gast #1160674
Lesenswert?

Hallo!!
Da ich im Moment volkommen auf der Leitung stehe, frag ich nun euch -

Ich will mit einem Atmeag 8 die Rotordrehzahl meines RC Helis messen. 
Für diesen Zweck hab ich aufs Hauptzahnrad 2 Magneten aufgeklebt und 
einen Hallsensor zur Auswertung genommen. Der Sensor gibt immer wenn ein 
Magnet unter ihm ist ein low aus.

Das heist - die Drehzahl wird errechnet in dem ich die Zeit zwischen dem 
1. low und dem 2. low messe (genau die zeit die für eine halbe Umdrehung 
benötigt wird).
Nur mit was messe ich die Zeit?? Kann ich dafür einen Timer verwenden 
oder gibs dafür einen Befehl Pulsein oder so was?? Und an welchen 
eingeng schließe ich das Signal an???

MFG!!
Gast #1160725
Lesenswert?

Im Prinzip gleich. Einen µC nehmen, der mehrere Ext. Ints und mehrere 
Timer hat. Falling oder Rising Modi für ext Ints verwenden.
Kann sein, daß 2 ext. Ints zeitlich zusammenfallen, dann wird sich aus 
der Verarbeitungszeit der ISR eine gewisse Ungenauigkeit ergeben. Die 
Priorität auf den zeitkritischeren Int legen. ISR so schnell wie möglich 
machen, evtl. in Asm mit ISR Option Nosave. Dann wird nicht der ganze 
Wust von Registern auf den Stack geschoben. Wenn der µC schnell genug 
ist, geht's aber auch ohne Asm.
Gast #1160972
Lesenswert?

Nachtrag:

Für besonders zeitkritische Vorgänge einen AVR mit Input Capture Unit 
verwenden, sobald am Input Capture Pin ein Signal anliegt, wird der Wert 
des Timer/Counters in das Input Capture Register geschrieben. Das 
geschieht auf Hardwarebasis und ist entsprechend schnell.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren