Forum: Mikrocontroller und Digitale Elektronik Zeitmessung in Bascom??


von ipirk (Gast)


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!!

von Stephan H. (stephan-)


Lesenswert?

Timer ist korrekt.
Impulse pro Sekunde messen/ zählen.
Daraus die Drehzahl/ Min errechnen.
Fertig

von MWS (Gast)


Lesenswert?

Ext. Int verwenden, in der ISR einen Zähler starten, beim nächsten 
Aufruf der ISR auslesen, zurücksetzen und das Ganze wieder von vorn.

von ipirk (Gast)


Lesenswert?

Wow das ging ja schnell!!!!
Also Timer 1 verwenden!!
Ok aber ich will auch noch ein RC Signal auswerten (alle 20ms ein Impuls 
zwischen 1 und 2ms). Wie kann ich den diesen Impuls vermessen???
MFG

von MWS (Gast)


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.

von MWS (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.