Forum: Mikrocontroller und Digitale Elektronik Array im SRAM


von Michael (Gast)


Lesenswert?

Hallo zusammen,
ich möchte gernen ein Array im SRAM anlegen...

Dazu hab ich zunächst am Ende des Quellcodes folgendes eingebracht:
1
 
2
.dseg
3
test:  .BYTE 500

Damit habe ich mir ja 500 Byte im SRAM reserviert,
gibt es eine Möglichkeit ohne den z-Pointer auf Zelle 250 zuzugreifen?

Mir ist aufgefallen das
1
sts test+250,Variable
funktioniert...
Ich möchte nun aber gerne einen counter an die Stelle von 250
schreiben, da bekomm ich aber Fehlermeldungen:
error: syntax error, unexpected REGDEF

Kann mir jemand einen Tip geben wie ich das  machen kann...

von Karl H. (kbuchegg)


Lesenswert?

Michael wrote:

> Mir ist aufgefallen das
>
1
> sts test+250,Variable
2
>
> funktioniert...

Das geht aber nur deshalb, weil die effektiv zu lesende Adresse
bereits zur Assemblierzeit bekannt ist und daher der Assembler
bereits die Adressberechnung macht.
Das hilft dir aber nichts, weil bei dir die Adressberechnung
erst zur Laufzeit stattfinden soll.

> Kann mir jemand einen Tip geben wie ich das  machen kann...

http://www.mikrocontroller.net/articles/AVR-Tutorial:_SRAM

Du brauchst den Z-Pointer
Den lädst du mit der Startadresse von test, addierst dann noch
den Inhalt von counter dazu und benutzt ST um von der so
errechneten Speicheradresse zu lesen.

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.