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


von Andi (Gast)


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

von mmerten (Gast)


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.

von Andi (Gast)


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

von Andi (Gast)


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

von A.K. (Gast)


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.

von Andi (Gast)


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

von Peter D. (peda)


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

von Andi (Gast)


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

von Raabtronic (Gast)


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.

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.