PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ring oder nicht ring?



nover
19.12.2006, 20:52
ich möchte Daten an ein LCD aus geben. Da ich aber auch variablen habe
kann ich die Daten nicht einfach aus dem flash holen und gut ist, ein
zwischenspeicher muss her. und ich dachte ein Ring ist dafür am besten
geeignet. da ich aber Assembler Anfänger bin weiß ich nicht genau wie es.

Mir ist heute morgen noch eine andere Idee gekommen. könnte man nicht
jeder variable einen eigenen string im Ram geben? Ich könnte mir
vorstellen das man sich damit eine menge Arbeit spart, und man könnte
jedem string einer bestimmten Adresse im Ram des Display zuordnen. Die
string Adressen kann man ja dann einfach aus dem Flash laden.
Geht das so auch oder ist das eine schlechte Idee ?

(ich habe einen ATmega8)

dank euch schon im voraus

nover
20.12.2006, 01:13
Ich habe mal in groben umrissen geschrieben wie ich mir das ungefähr
gedacht habe :



================================================== =====
.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]