ich glaube nicht dass die bibliothek für mein lcd geeignet ist, da es
einen datenbus von 8bit hat, oder hat das nichts zu sagen ? ansonsten
hat es auch einen ks0066 controller und keinen ks0073 oder HD44780.
insofern ist das wohl nicht kompatibel.
was das übersetzen meines asm codes nach c angeht, bin ich wohl zu
schlecht, um das hinzubekommen.
ich habe schon versucht den asm code aus meinem c code heraus zu
benutzen. allerdings bekomm ich dabei massig fehler, weil bestimmte
platzhalter aus den includes des avr studios anscheinend nicht in der
winavr lib enthalten sind.
im anhang ist das projekt und ein screenshot der ausgabe. die lcd
routine hab ich schon vor über nem jahr aus einem quelltext file
erstellt. gewisse sachen mussten für mein lcd modifiziert werden,
vorallem das timing.
das ziel wäre im c code ein char array anzugeben, was ich dann mit der
lcd schreibroutine:
;--------------------------LCD-Schreibroutine---------------------------
-----------------------
lcd_write:
ldi ZL, LOW(text*2) ; Low-Byte der Adresse in Z-Pointer
ldi ZH, HIGH(text*2) ; High-Byte der Adresse in Z-Pointer
rcall lcd_clear ; text soll auf lcd geschrieben werden
rjmp print ; art der variablen text ist mir unklar!
print:
lpm ; Erstes Byte des Strings nach
R0 lesen
tst R0 ; R0 auf 0 testen
breq print_end ; wenn 0, dann zu print_end
mov r16, r0 ; Inhalt von R0 nach R16
kopieren
rcall lcd_data ; LCD-Sendefunktion aufrufen
adiw ZL, 1 ; Adresse des Z-Pointers um 1
erhöhen
rjmp print ; wieder zum Anfang springen
print_end:
ret
;--------------------------LCD-Schreibroutine---------------------------
-----------------------
also in text[10] soll etwas drinstehen, was ich im c quelltext mache und
wenn ich damit fertig bin, soll lcd_write() aufgerufen werden und dann
steht der text auf dem lcd. wie soll ich das anstellen ? und wie ersetze
ich die assembler zeilen die in der ausgabe als fehlerhaft stehen ?
kennt jemand den winavr code ?