hi, ich verstehe den folgenden Befehl nicht so ganz ldi r16, RAMEND out SPL, r16 da wird das Register mit ramend geladen und dann soll es das niedrige byte vom RAM ausgeben. aber was ist dieses RAMEND??
Andi wrote:
> aber was ist dieses RAMEND??
Die Adresse an dem das RAM fertig ist, also die höchste Adresse die vom
RAM belegt ist.
Hi, RAMEND wird in der Include-Datei gesetzt, die zum verwendeten AVR gehört. Mit diesen Zeilen wird der Stackpointer gesetzt, der üblicherweise nach unten wächst, deshalb fängt er am Ende an ;-)
also der befehl bewirkt quasi nur, dass ich ab nun unterprogramme aufrufen kann, versteh ich das richtig?
sollte das bei 8-bit prozessoren nicht so eingegeben werden..? ldi r16, high(RAMEND) out SPH, r16 ldi r16, low(RAMEND) out SPL, r16 lg xeox
Martin ... wrote: > sollte das bei 8-bit prozessoren nicht so eingegeben werden..? Kommt drauf an, ob der Controller mehr oder weniger 256Bytes RAM hat (bzw. ob der Stackpointer 8 oder 16bit groß ist, denn bei neueren AVRs ist der Stackpointer auch bei Controllern mir <128Bytes RAM teilweise 16bit groß, denn viele AVRs gibt es je nach Typ z.B. mit 128/256/512 Bytes RAM und bei denen ist der Pointer dann immer 16bit groß).
Hi
>sollte das bei 8-bit prozessoren nicht so eingegeben werden..?
Nur wenn der RAM > 256 Bytes ist.
MfG Spess
> Nur wenn der RAM > 256 Bytes ist.
eher >= 256 bytes (256=0x0100), was bei 90% der cpu' der fall ist.. ;)
Martin ... wrote: >> Nur wenn der RAM > 256 Bytes ist. > eher >= 256 bytes (256=0x0100), was bei 90% der cpu' der fall ist.. ;) Stimmt auch nicht ganz, siehe was ich geschrieben habe. Dazu kommt auch noch, dass der RAM nicht bei 0 beginnt.
Ja. Ich muss mich auch selbst noch korrigieren: SPH existiert anscheinend doch nur, wenn er gebraucht ist: Note that the data space in some implementations of the AVR architecture is so small that only SPL is needed. In this case, the SPH Register will not be present. Es stört aber nicht, SPH immer zu beschreiben, das macht auch der GCC so. Dann ist man wenigstens auf der sicheren Seite, und man muss weniger beachten, wenn man die Software auf einem anderen AVR verwendet.
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.