Hallo zusammen
ich programmiere gerade in Assembler.
Und möchte gerne mehrere im Flash abgelegte Texte über Uart ausgeben.
Zur Zeit sieht das so aus:
main:
ldi temp1, low(RAMEND)
out SPL, temp1
ldi temp1, high(RAMEND)
out SPH, temp1
...
call ausgabe_text1
....
call ausgabe_text2
ende:
jmp ende
------------------------------
ausgabe_text1:
ldi ZL,low(text1*2) ; Z Pointer laden
ldi ZH,high(text1*2)
rcall serout_string
ret
ausgabe_text2:
ldi ZL,low(text2*2) ; Z Pointer laden
ldi ZH,high(text2*2)
rcall serout_string
ret
Text1: .db "hier",0,0
Text2: .db "springt",0
Nun habe ich wie gesagt mehrere Texte zur Ausgabe.
Wie kann ich die Zeilen ändern, um sie universell zu nutzen?
call ausgabe_text1
ldi ZL,low(text1*2) ; Z Pointer laden
ldi ZH,high(text1*2)
Danke im Vorraus
Hi Ich würde nicht für jeden Text ein Unterprogramm schreiben, sondern nur an den entsprechenden Stellen Z laden und 'serout_string' aufrufen. Evtl. ein Macro benutzen: .macro textout ldi ZL,Low(@0*2) ldi ZH,High(@0*2) rcall serout_string .endmacro Aufruf mit: textout text1 MfG Spess
Danke das ist das, was ich gesucht habe. Immer wieder toll, dass einem die Leute hier so schnell helfen können.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.