Zitat Zitat von for_ro
Dann kannst du auch noch etwas anderes tun als nur die Pins abfragen.
Rolf gibt hier zu Recht zu bedenken, dass der Rechenaufwand für eine Encoderauswertung nicht gerade unerheblich ist. Auch wenn mein Beispielprogramm zur Encoderauswertung "geschmeidig" läuft - nun ja, es macht ja auch nichts anderes!
Also habe ich mein Beispielprogramm im Simulator laufenlassen um mal ein paar Zyklen zu zählen.
Die gesamte ISR zur Encoderauswertung braucht im ungünstigsten Fall (Rotary=FF, Rotary1=0F, Rotary2=00) inklusive Auswertung der Encodertaste sowie Pushen/Poppen 197 Prozessortakte. Das sind 197/(20MHz)= 9,85µs.
Wenn diese 10µs alle 0,5ms ausgeführt werden habe ich eine Prozessorauslastung von rund 10µs/500µs= 2%. Im Mittel sinds vermutlich 1% oder weniger. Ist also nicht so viel.

Aber die eigentliche Frage lautet doch:
Kann ich es meinem AVR erlauben sich ganze 10µs ausschließlich der Encoderauswertung zu widmen und alles drumrum zu vernachlässigen?

MFG
screwdriver