Hallo Sauerbruch,
Danke für die Antwort.
Wie progge ich das dann??
Also wie ich eine Sekunde hinkrieg weiß ich. Aber in welcher Reihenfolge muss das kommen?? Oder wird das dann in einer Schleife geschrieben.
Mfg
bnitram
Hallo Sauerbruch,
Danke für die Antwort.
Wie progge ich das dann??
Also wie ich eine Sekunde hinkrieg weiß ich. Aber in welcher Reihenfolge muss das kommen?? Oder wird das dann in einer Schleife geschrieben.
Mfg
bnitram
Sicherlich führen tausend Wege nach Rom - einer davon könnte so aussehen: Timer1 wird als Counter konfiguriert, ein zweiter timer als 1-Sekunden-Timer. In der ISR des 1-Sekunden Timers wird der Inhalt des Timer1 in eine Word-Variable übernommen, auf 0 zurückgesetzt und ein Flag gesetzt. In der Hauptschleife wird das Flag dann abgefragt, und wenn es gesetzt ist, wird die Word-Variable mit 60 multipliziert (weil´s ja Umdrehungen pro Minute sind), angezeigt, und das Flag gelöscht:
Code:Config timer1 as counter, edge = rising Config timer0 as timer.... ' On timer0 Sekunde Enable timer0 Enable Interrupts Dim RPM as word Dim Flag as Bit Do If Flag = 1 then RPM = RPM * 60 LCD RPM Flag = 0 End if Loop Sekunde: RPM = Timer1 Timer1=0 Flag = 1 Return
Das ist jetzt einfach nur mal ´ne Idee, auf blauen Dunst geschrieben und ungetestet!!
Vielen Dank auf jeden Fall schonmal. Ich werde den Code mal durchgehen und auch mal testen.
Mfg
bnitram
Edit:
Welche Methode ist den dann die bessere??
Das ist schwer zu sagen - das kommt darauf an, welche Leistungsmerkmale im Einzelfall wichtig sind.Welche Methode ist den dann die bessere??
Der wesentliche Unterschied besteht in der Auflösung: Zählst Du während einer Sekunde die Umdrehungs-Impulse, ist die Drehzahl (in U/min) immer 60 * Zahl der Impulse. Das heißt, dass die angezeigte Drehzahl immer ein Vielfaches von 60 ist, und die Auflösung ebenfalls konstant 60 U/min beträgt.
Wertest Du aber die Zeit zwischen zwei Umdrehungsimpulsen aus (indem Du einen Timer zwischen zwei Umdrehungsimpulsen hochzählen lässt und anschließend ausliest), ist die Drehzahl ja umgekehrt proportional zum Timerwert (je langsamer der Motor dreht, umso weiter kann der Zähler zwischen zwei Impulsen zählen). Im unteren Drehzahlbereich hast Du somit eine ziemlich "feine" Auflösung, während die Drehzahl im oberen Bereich in eher gröberen Schritten angezeigt werden.
Ist das Projekt denn überhaupt noch aktuell??
Ich würde das anders angehen:
Statt in einem Zeitfenster von einer Sekunde Impulse zu zählen, würde ich eher die Zeit zwischen zwei Impulsen messen und dieses Ergebnis dann auf eine Sekunde aufrechnen.
Grüße
Thomas
Lesezeichen