ALso den Drehzahlmesser hab ich damals auch in Bascom gemacht.
Der "Nachteil" mit der Auflösung war mir im Prinzip egal. Da es ja eigentlich keinen Unterschied macht, ob der Motor jetzt mit 3400 oder 3460 dreht.
Also mal ein Codeteil (Kann sein, dass irgendwo noch kleine Fehler sind, also ein = zuviel o.ä., aber seit Februar hab ich Bascom eigentlich nicht mehr verwendet)
Code:' INT0 initialisieren Config INT0 = Falling ' oder Rising; an sich egal On INT0 ISR_Int0 ' Bei Auslösung: Springe nach ISR_Int0 Enable INT0 ' INT0 einschalten Enable Interrupts ' Interrupts global freigeben ' Timer einstellen Config Timer1 = ... je nach gewünschter Dauer... On Timer1 ISR_Timer1 Enable Timer1 DIM Pulse as Word ' Zählvariable DIM Drehzahl as Word DO 'Main-Loop, irgendwas machen, z.B. Ausgaben etc LOOP ISR_Int0: INCR Pulse ' Pulse um 1 erhöhen Return ISR_Timer1: Drehzahl = Pulse * Faktor ' (Faktor je nach Motortakte/Zylinderzahl/Messzeit) Pulse = 0 Return
So lassen sich schon mal die Pulse zählen. Jetzt nur noch nen Timer mit der gewünschten Zähllänge dazu, dort die Anzahl der Pulse auswerten und die Variable 'Pulse' wieder auf 0 setzen.







Zitieren

Lesezeichen