Gast
#3205458
Hallo zusammen, ich möchte meinen AVR ATtiny24A möglichst schnell auf eine fallende Flanke eines Eingangssignals reagieren lassen. Dieses kann allerdings mit bis zu 1MHz takten. Da der ATtiny24 nur mit 16MHz läuft stehen also nur 16 Takte zur Verfügung. 5 Takte davon gehen schon für die eigentliche Reaktion drauf. Es bleiben also 11 Takte zur Erkennung der Flanke. Bisher läuft der AVR in einer Programmschleife und pollt kontinuierlich den Pin. Aufgrund des nötigen Rücksprungbefehls (SPIS, JMP) lässt sich der Pin aber nur alle 3 Prozessortakte lesen. Die Reaktionszeit des AVR variiert daher um 3 Takte was mit nicht passt. Um die Reaktionszeit konstant kurz zu halten, dachte ich es könnte hilfreich sein, den Idle-Mode zu nutzen. Allerdings muss höchstens 7 Takte nach der Flanke das Ausgangssignal erzeugt werden, besser kürzer. Nun suche ich mir im Datenblatt die Augen wund und finde keinen Weg ohne den Sprung zu einem Interruptvaktor das Programm nach einem Sleep-Befehl fortlaufen zu lassen. Bevor ich meinen Plan mit dem interruptfreien sleep allerdings über den Haufen werfe wollte ich sicherheitshalber noch einmal nachgefragt haben. Vielleicht kennt ja jemand einen kleinen hack. Vielen Dank