Titelbild Mikrocontroller

2.5. Zugriff auf 16 Bit Register

Der Datenbus der AVR ist 8 Bit breit. Um auf ein 16 Bit Register zuzugreifen müssen also zwei Lese- bzw. Schreiboperationen durchgeführt werden.

Bei einem Schreibvorgang muss zunächst das Low-Byte geschrieben werden, es wird in einem temporären Register zwischengespeichert. Anschließend wird das High-Byte geschrieben, das dann automatisch zusammen mit dem temporären Register in das 16 Bit Register kopiert wird.

Beim Lesen eines 16 Bit Registers wird zunächst das Low Byte gelesen. Gleichzeitig mit dem Lesen des Low Byte wird der Inhalt des High Byte in ein temporäres Register geschrieben. Wenn anschließend das High Byte gelesen wird, kommt der Inhalt aus dem temporären Register.

Aufpassen bei Interrupts, die möglicherweise ebenfalls auf ein 16 Bit Register zugreifen. Ggf. Interrupts während des 16 Bit Zugriffs sperren.

Bei 24 Bit oder 32 Bit Registern funktioniert der Zugriff genauso. Es stehen dann zwei oder drei temporäre Register zur Verfügung. Lesen und Schreiben beginnt immer mit dem LSB.

« zurück:
2.4. RAMP und EIND
» weiter:
2.6. CCP
Impressum