Liebe Forenten,
in einem zeitkritischem AVR Assembler Loop muss ich Werte
auf ATTiny861's Port A ausgeben. Die Werte werden ueber
das Z Register indiziert:
1 | forever:
|
2 | ...
|
3 | LD tmp_register, Z
|
4 | OUT _SFR_IO_ADDR(PORTA), tmp_register
|
5 | ...
|
6 | RJMP forever
|
Waere es moeglich, das ganze abzukuerzen, da I/O Ports
ja wie Register in den Anfang des SRAM gemappt werden:
1 | LD _SFR_IO_ADDR(PORTA + 32), Z
|
Ich habe leider aktuell keinen Zugriff auf meine
Entwicklungsumgebung, um die Idee zu verifizieren.
Das Datenblatt scheint die Target Registerwerte bei
dem LD Befehl auf 0 bis 31 zu limitieren.