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