Pointer SRAM?

Gast #313609
Lesenswert?
• ▲
▼
Hallo,

habe ein kleines Problem und hoffe das mir jemand helfen kann. Ich habe
im SRAM einige Bitfolgen abgelegt die ich für die Ansteuerung eines
Schrittmotors benötige. Ich möchte nun dem AVR mittels 4 Eingänge
Steuersignale zuführen z.b. Links/Rechts(Vollschritt)
Links/Rechts(Halbschritt).

Deswegen wäre es nötig mich im SRAM vor und zurück zu bewegen. Habe in
der Hilfe folgende Lösung gefunden aber es ist ja so das ich nicht im
Vorraus weiß ob ich hoch oder runterzählen muss. Ich müsste also erst
den Pointer erhöhen bzw. verringern und dann den Wert einlesen.

ldi r28,$60     ;Setze Pointer auf SRAM-Anfang
ld r0,Y+        ;Lade SRAM-Wert in Register0 und erhöhe Y-Pointer um 1
Angehängte Dateien:
Gast #313610
Lesenswert?
• ▲
▼
Nimm einen Pointer, X Y oder Z. Nimm ein zusätzliches Register. In
dieses Register schreibst Du den "Offset" und addierst diesen auf den
Pointer, etwa so:

clr Null         ;Hilfsregister


clr XH
ldi XL, $60
add XL, Offset
adc XH, Null     ;bei überlauf von XL auch XH um 1 erhöhen
ld  Temp, X

Mittels des Offsets kannst Du Dich 255 Bytes von der Basisadresse
wegbewegen, in den entsprechenden Routinen stellst Du die Werte für
den Offset ein. Die Namen "Offset", "Null" und "Temp" müssen
zuvor freilich definiert werden. Das Ganze funktiniert auch mit dem
Flash und mit dem Z-Pointer und der Anweisung LPM.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.