Am einfachsten fragst du dauernd nen beliebigen Pin ab.
Code:
interrupt, LCD, Ein/ausgänge konfigurieren
timer laden
Do
Pinzustand einlesen
if Pinzustand voher = Pinzustand jetzt
// nixtun
else
Zähler = Zähler +1
Pinzustand voher = Pinzustand jetzt // da der Jetzt-Zustand im nächsten Durchlauf der alte ist
end if
loop
interruptroutine:
UmdrehungenproZeiteinheit = (Zähler/2) / Zeit // "/2" da voher sowohl auf- als auch absteigende Flanken gezählt wurden
// weiterrechnen
Ausgabe am LCD
Zähler = 0 // zurücksetzen, damit gleich neu mit zählen angefangen werden kann
Timer neu laden
end interruptroutine
so schematisch mal angedeutet
EDIT: ops, hab vergessen zu sagen, was das fürn interrupt ist: ein vom MC ausgehender Interrupt, der von nem Timerüberlauf ausgelöst wird.
hab den Code noch n klein wenig angepasst!
Lesezeichen