-
Moin,
ich empfehle, das Dokument "AVR Instruction Set" zu lesen und möglichst die zwei Seiten Instruction Set Summary gleich auszudrucken und an die Wand zu hängen :-)
Mit den Befehlen ST und LD im indirekten Modus kann man das Verhalten von Arrays prima nachbilden. Dazu lädt man den Index in das Doppelregister X, Y oder Z und greift dann per "ST X, Rr" zu. Will man das Array schrittweise durcharbeiten, lässt sich das Indexregister sogar noch incrementieren oder dekrementieren, z.B. LD Rd, Y+.
Code:
.equ werte = 0x100
ldi YL, LOW(werte) ; initialisiere den Y-Pointer
ldi YH, HIGH(werte)
ldi temp, 0xA0 ; lade irgendeinen Wert
st Y+, temp ; speichere den Wert am Anfang des Speichers
ldi temp, 0x5B ; nächster Wert
st Y+, temp ; speichere an nächster Stelle usw.
Achim.
-
Was läuft denn für ein OS?
Keins, vermute ich mal. Du hast also den kompletten SRAM zum drin rumwutzen.
Der Stack wächst von oben nach unten. Befehle, die den Stack benutzen, verwenden auch den SRAM: push, pop, ret, reti, rcall, icall, IRQs, etc
In den SRAM greifst du mit lds, ld, ldd, sts, st, std. Das wars auch schon.
Dein SRAM fängt an bei 0x60. Von 0x20 bis 0x5f liegt I/O und in 0x00 bix 0x1f werden die GPRs gemappt. Bei grösseren AVRs werden auch SFRs ins SRAM gemappt, dann beginnt dein nutzbares SRAM erst weiter hinten.
Die avr-Header von avr-gcc sind auch zusammen mit avr-as verwendbar. Dort gibt's auch ein define RAMEND, das du verwenden kannst, um den Stack zu initialisieren.
-
Danke
Wenn man erst mit dem programieren von Mikrokontroller anfängt kann man noch so oft in das Datenblatt schaun und findet nur die unwichtigen Dinge die man nicht sucht.
Jetzt hab ich wieder genug zum Lesen und zu werken für die nächsten kalten Wintertage.
@ voidpointer
Ich hab das gesamte Datenblatt ausgedruckt und mit Schustergarn gebunden.
(2 Seiten auf ein Blatt, Doppelseitig gedruckt)
Mit dem auf die Wand Pinnen sieht's bei mir nicht so toll aus.
Der Bastel-PC steht wenn's warm ist in der Werkstatt meines Bruder's, deren Wände voll mit Werkzeug sind die selbst Tim Taylor neidisch machen würden ;o).
Und im Winter steht der Bastelrechner in der gemeinsamen Hausbar.
Da hat alles Platz, nur keine Datenblätter. ;o)
Ich werd mir jetzt als 1. meine eigene Datenblatt-Mappe zusammenstellen in die ich nur die wichtigsten Dinge packe.
Prost!!!
mfg Bastlwastl