Forum: Compiler & IDEs Beide Datenregister des 16-Bt-Timers auf einmal ansprechbar?


von Witali G. (witali)


Lesenswert?

Hallo zusammen!!

Könnte mir jemand verraten, ob man bei AVR-Controllern in C-Code die 
beiden Datenregister des 16-Bit-Timers mit einem C-Befehl auf einen 
gewünschten Wert setzten kann. Oder sind die einzellnen Register (low, 
high) nur einzeln ansprechbar?

Danke im Voraus!!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Im Maschinencode sind sie nur einzeln ansprechbar, und es gibt eine
im Datenblatt dokumentierte Sequenz, in welcher Reihenfolge diese
beiden Zugriffe ausgeführt werden müssen, damit sie atomar im
16-Bit-Sinn erfolgen (dabei wird dann ein 8-Bit-Wert in einem
Latch zwischengespeichert).

Manche C-Compiler bieten für diese Folge ein 16-Bit-Pseudoregister
an (AVR-GCC zum Beispiel).  Dieses entsteht durch Weglassen der
Suffixbuchstaben "H" bzw. "L".  (Ausnahme: ADCH/ADCL => ADC ist
ein möglicher Assemblerbefehl, daher wird der Name dort zu ADCW.)

von Witali G. (witali)


Lesenswert?

Besten Dank für die Antwort! Das bringt mich weiter!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.