mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR-Studio - Abschalten von "Padding Zero Byte"


Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forengemeinde!

Kann man in dem bl.... AVR-Studio das einfügen eines zero-Bytes nach
einem .db xyz irgend wie abschalten?
Also so, dass das AVR-Studio die Flash-Adresse erst vor einem Befehl im
Code-Segment die Adresse gerade biegt und nicht vor jeder Zeile.
Oder gibt es wieder eine neue Version wo das möglich ist?
Bin schon gaga vom Eingeben der Font-Bytes und möchte nicht noch mehr
gaga werden, wenn ich zwei Zeilen mit .db xyz ändern muß zu
.db xyz,xyz.

MfG
Andi

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist beim avr Studio so nicht vorgesehen, würde wohl dann auch nicht mehr
abwärtskompatibel sein. Im Codesegment arbeitet der Counter Word
orientiert entsprechend der Busbreite. Bei IAR Assembler für den Atmel
AVR ist das nicht der Fall. Den gibt`s auch zum kostenlosen Download.

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Werde den IAR mal ausprobieren.
Hoffentlich ist der dann kompatibel zum aktuellen AVR-Studio.
Wenn nicht, mach ich die Font-Bytes mit dem IAR und versuche dann die
HEX- oder BIN-Datei im AVR-Studio einzubinden.
Ich hoffe, das geht dann irgend wie.

MfG
Andi

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, das wollt ich noch los werden.
Die Entwickler vom AVR-Studio hätten doch von Anfang an daran denken
können, die Byte-Adresse nach einem .db mit ungerader Anzahl an Bytes
zu belassen wie sie ist und die erst zu begradigen bei einem Befehl
außer .db, (Byte-Adresse + 1) / 2 um wieder auf die Word-Adresse zu
kommen.
Nicht umsonst lasse ich Strings nicht mit 0 sondern einem anderen
Steuerzeichen beenden um mir das Abzählen der Zeichen zu ersparen nur
damit zwischen den Strings, welche auf mehrere Zeilen verteilt sind,
keine "0" eingefügt wird.
Vielleicht ließt das ja jemand von den Entwicklern und führen das
irgend wann mal als Option ein.

MfG
Andi

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dazu aber müsste der Atmel-Assembler im Programmbereich mit
Byte-Adressen arbeiten. Tut er aber nicht, im Programmbereich arbeitet
der Assembler mit Wort-Adressen. Und da ist das hier verlangte etwas
schwierig.

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So schwierig dürfte das nun auch nicht sein.
Um in einer Zeile eine Kette von Data-Bytes zu erzeugen, muß der
AVR-ASM sowieso in Byte weiterzählen und wenn das in einer Zeile mit 10
Bytes geht, warum dann nicht auch in einer Kette von 10 Zeilen mit je 1
Byte?
Ich glaube auch nicht, das im AVR-ASM alles Word-Weise passiert, es
wird nur dafür gesorgt, dank des PC in einem AVR, das jede Anweisung
oder Befehl bei einer geraden Byte-Adresse beginnt.
Im Fall von .db find ich das völligen Quatsch.

MfG
Andi

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da? Texte über eine Zeile hinweg gehen, habe ich bisher noch nie
benötigt, eine komplette Ausgabe auf ein LCD 2*20 kriegt man bequem in
eine Zeile.
Vielleicht kann ja der neue Assembler auch die Zeilenverlängerung wie
unter C.

Die alten Assembler hatten allerdings einen Bug, dann stimmten alle
RJMP und RCALL nicht mehr, wenn man nicht abgezählt hatte.


Peter

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter!

Es geht mir im Moment nicht um Textausgabe sondern um Font-Definition
für ein T6963C-LCD.
Möchte Zeichen auf dem Grafikarray ausgeben, proportional und evtl. in
alle Richtungen und auch evtl. große Zeichen.
Das mit dem Umbruch einer Zeile habe ich in der Hilfe von AVR-Studio
endlich gefunden und auch angewandt und auch endlich eine Lösung:

;18 Bytes in 18 Zeilen
;z {
.db  6,    \
  0b00000000,  \
  0b00000000,  \
  0b11111000,  \
  0b00010000,  \
  0b00100000,  \
  0b01000000,  \
  0b11111000,  \
  0b00000000,  \
  4,    \
  0b00100000,  \
  0b01000000,  \
  0b01000000,  \
  0b10000000,  \
  0b01000000,  \
  0b01000000,  \
  0b00100000,  \
  0b00000000

Hier werden 2 Zeichen (max. 5x8) mit je 9 Bytes definiert wobei das
erste Byte die Pixelbreite inkl. Space (1 Pixel) angibt.
Mit dem Backslash wird eine Zeile auf die nächste erweitert womit eine
schöne, saubere Ansicht bleibt und ich jederzeit, ohne Krämpfe und ohne
Font-Editor, was verändern kann.
Mit dem Format, 1 Byte Pixelbreite und 8 Bytes Font-Daten oder Tabelle
mit Pixelbreiten und danach die Fontdaten, bin ich noch nicht ganz
schlüssig, aber das ist ja schon mal ein Anfang.

MfG
Andi

Autor: Raabtronic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Andi, das hat mir sehr geholfen.

Fontdaten mit ungeraden Bytemengen je Buchstaben können jetzt im AVR 
Studio z.B. so aussehen:

.CSEG
FONT_5x8_DATA:
.db 0x05, 0x08 ;  width , height
FONT_5x8:
.db \
 0x00,0x00,0x00,0x00,0x00,/*0x00*/\
 0x78,0xAC,0x8C,0xAC,0x78,/*0x01*/\
 0x78,0xAC,0xEC,0xAC,0x78,/*0x02*/\
 0x70,0xF8,0x7C,0xF8,0x70,/*0x03*/\
 0x10,0x38,0xFE,0x38,0x10,/*0x04*/\
 0x18,0x52,0xFE,0x52,0x18,/*0x05*/\
 0x38,0x72,0xFE,0x72,0x38,/*0x06*/\
 0x00,0x00,0x00,0x00,0x00,/*0x07*/\
 ...
 ...
 0x00,0xA8,0xA8,0x50,0x00,/*0xFC*/\
 0x00,0x98,0xA8,0x48,0x00,/*0xFD*/\
 0x00,0x3C,0x3C,0x3C,0x3C,/*0xFE*/\
 0x00,0x00,0x00,0x00,0x00 /*0xFF*/

Letzte Zeile natürlich ohne Komma und Backslash.

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.