Hallo, irgendwann hatte ich mal gelesen, dass man das High-Byte vor dem Low initialisieren muss. Achso ATMega 32. Mich würde nun interessieren warum das so sein mussund wann man noch auf diese Byte-Order achten muss. Danke. -- Gruß Karsten
Nicht dass ich wüsste, dass dies beim Stack (SPH, SPL) so sein müsste. Aber bei Timer und AD-Wandler spielt die Reihenfolge eine Rolle. Zu lesen in den Datenblättern der CPUs. Dort steht auch beschrieben, warum das so sein muss.
Man muss das beim Stackpointer nicht machen; es funktionieren beide Reihenfolgen. Wie guest auch schreibt ist bei bestimmten 16-Bit Registern auf dem AVR die Reihenfolge wichtig z.B. bei 16-Bit Timer-Registern Schreiben 1. HIGH (Wert kommt zunächst in eine temporäre Speicherstelle) 2. LOW (setzt Lowbyte und Highbyte aus temporärer Speicherstelle als 16-Bit in einem Takt) Lesen 1. LOW (liefert Lowbyte, aber das Highbyte kommt auch in eine temporäre Speicherstelle) 2. HIGH (liefert das Highbyte aus der temporären Speicherstelle) Damit man diese Reihenfolge intus hat, wurden die Stackinitialisierungen im Tutorial an die Schreibsequenz (1. HIGH 2. LOW) angepasst. AVR073: Accessing 10- and 16-bit registers in ATtiny261/461/861 http://www.atmel.com/dyn/resources/prod_documents/doc8027.pdf
Hallo, beim Ver-/ Bearbeiten der bspw. Timer-Register ist das auch logisch, ich rede hiervon den Counter-Register. Jedoch hat das nichts mit der Initialisierung zu tun. -- Gruß Karsten
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.