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!!
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.)
Besten Dank für die Antwort! Das bringt mich weiter!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.