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!Zitat von for_ro
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
Lesezeichen