mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Pointer SRAM?


Autor: Thomas O. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.