mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zeilenumbruch im AVR-ASM?


Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Habe ein sehr kleines Prob im AVR-ASM.
Und zwar habe ich mir folgende Konstanten-Tabelle im Programmemory
aufgebaut:

ModParam:
  .db 1, 0, 1, 1,  0x12
  .db 10,  0, 30, 1, 0
  .db 20,  0, 30, 1, 0
  .db 128, 0, 255, 1, 0
  .db 10,  0, 255,  1, 0
  .db 1, 0, 1, 1, 0x12
  .db 10,  10, 120, 1, 0
  .db 10, 10, 120, 1, 0
  .db 1, 0, 1, 1,  0x12
  .db 10, 10, 60,  1, 0
  .db 2, 0, 50, 1, 0
  .db 128, 0, 255, 1, 0

Das kleine Problem dabei ist, das der Compiler mir am Ende jeder Zeile
noch ein Byte dran hängt da es in jeder Zeile eine ungerade Anzahl (5)
an Bytes sind.
Ich könnte alles in einer Zeile schreiben aber dann ist die Übersicht
weg.
Gibt es eine Möglichkeit, die 1. auf die 2. Zeile und die n. auf die
n+1. Zeile fortzusetzen, also so ne Art Zeilenumbruch zu machen?
Ungefähr so kenn ich das von V-Basic für Access:

ModParam:
  .db 1, 0, 1, 1,  0x12 _
      10,  0, 30, 1, 0 _
      20,  0, 30, 1, 0

Hier signalisiert der Unterstrich das fortsetzen der Zeile auf die
nächste.

Gruß
Andi

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Habe ein sehr kleines Prob im AVR-ASM.

Dann bist Du hier aber schlicht im falschen Forum.  Hier geht's um
den
GCC, ggf. noch den GNU assembler.

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja wo denn dann?
Ist ja nix extra für den AVR-ASM da!
Trotzdem kann man es ja versuchen.

Gruß
Andi

Autor: Stefan Kleinwort (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Flash des AVR ist 16-Bit breit organisiert. Deshalb fügt der ASM
nach jeder ungeraden Anzahl ein Align-Byte ein.

Daran wirst Du kaum was ändern können.

Stefan

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist mir vollkommen klar!
Mir gings nur darum, ob man dem Compiler irgend wie mitteilen kann, das
die nächste Zeile dazugehört.
So in der Art wie oben beschrieben.

Gruß
Andi

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du must immer eine gerade Anzahl Bytes in eine Zeile schreiben, sonst
sind die .db nicht fortlaufend, d.h. er fügt Nullen ein !


Peter

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schon erwähnt, ist mir das vollkommen klar und habe das bereits
vorher schon berücksichtigt indem nicht 5 sondern 6 hoch/runteraddiert
wird.
Dann gibt es wohl nichts, um eine Comandozeile auf mehrere Zeilen zu
erweitern, oder?

Gruß
Andi

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.