mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zeitmessung in Bascom??


Autor: ipirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!!

Autor: Stephan Henning (stephan-)
Datum:

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

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: ipirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.