Ich habe mal in groben umrissen geschrieben wie ich mir das ungefähr
gedacht habe :
Code:
=======================================================
.equ string1=0x0060 ;+12 Byte
.equ string2=0x006c ;+12 Byte
.equ string3=0x0078 ;+12 Byte
.equ string4=0x0084 ;+12 Byte
.def temp1,r16
.def str,r18
loop:
;(jetzt irgendwas an befehlen)
rjmp loop
dat1s: ;Byte in den ram legen
ldi yh,high(string1)
ldi yl,lowe(string1)
st y+,temp1
ret
dat1l: ;Byte aus den ram holen
ldi yh,high(string1)
ldi yl,lowe(string1)
ld y+,temp1
tst t1mp1
breq out_end
rjmp lcd_out
out_end:
sbrc str,0
ret
===================================================================
Das str Register ist nur da damit man weiß wann es etwas zu tun gibt.
Das was ich mir denke ist:
ich schreibe die variable in den ram (string1) und setze bit0 von str
auf 1 wenn alles im ram ist. danach würden die Daten nacheinander an das
LCD übergeben werden, nach jedem byte geht es dann erstmal wieder in das
Hauptprogramm usw. wen dann alles Übertragen wurde setze ich bit0 von
str wider auf 0 . so spare ich mir das warten bis ich das nächste byte
senden kann.
p.s. Wen das nicht so geht (der code komplett falsch ist ) dann wäre ich
sehr froh wen ihr mir helfen würdet!!![/code]
Lesezeichen