Gast
#964953
Hallo Zusammen, habe volgendes Problem: Hab ein LCD 2x 16 Zeichen Programmiere in AVR-Studio den ATmega 8 Die Textausgabe in 2 Zeilen ist kein Problem bei mir. Jedoch kann ich den Text nur ausgeben wenn ich jedes Zeichen einzeln eingebe im Quellcode Doch wenn ich den assembler code vom tutorial nehme um den text als ganzes eingebe zeigt er mir beim erstellen des HEX-files einen kleinen fehler: (25): warning: .cseg .db misalignment - padding zero byte Aber da der Fehler nur gelb gekenzeichnet war hab ich mir nix bei gedacht. Aber LCD zeigt nur noch schwarzen Balken an. Hier mein Quellcode: include "m8def.inc" .def temp1 = r16 .def temp2 = r17 .def temp3 = r18 ldi temp1, LOW(RAMEND) ; LOW-Byte der obersten RAM-Adresse out SPL, temp1 ldi temp1, HIGH(RAMEND) ; HIGH-Byte der obersten RAM-Adresse out SPH, temp1 rcall lcd_init ; Display initialisieren rcall lcd_clear ; Display löschen ldi ZL, LOW(text*2) ; Adresse des Strings in den ldi ZH, HIGH(text*2) ; Z-Pointer laden rcall lcd_flash_string ; Unterprogramm gibt String aus der ; durch den Z-Pointer adressiert wird loop: rjmp loop text: .db "Test",0 ; Stringkonstante, durch eine 0 ; abgeschlossen .include "lcd-routines.asm" ; LCD Funktionen was muss geändert werden oder kann es sein das meine lcd-routines geändert werden müssen??? Wäre dankbar für jeden Lösungsvorschlag