Forum: Mikrocontroller und Digitale Elektronik unabhängig von Tabellenname Assembler


von Elbegucker (Gast)


Lesenswert?

Hi
habe mal wieder eine Wissenslücke.
Zur Zeit gebe ich Text auf meinem LCD so aus:

.macro text_to_lcd
  ldi ZL,Low(@0*2)
  ldi ZH,High(@0*2)
    rcall lcd_flash_string
.endmacro

...
text_to_lcd     Einstellungen_anzeigen
...
text_to_lcd     Einstellungen_aendern


Wie kann ich Text unabhängig vom Tabellenname ausgeben?
Also in etwa so:

ldi temp,1
text_to_lcd, temp

Wenn temp=1, dann Einstellungen_anzeigen.

Hoffe es ist klar was ich meine.
Oder geht das über eine weitere Tabelle, die dann auf die anderen
Tabellen verweist?
Grund hierfür ist, dass ich eine Menüfuhrung realisieren will.

von Elbegucker (Gast)


Lesenswert?

Hilfe!!

von Falk B. (falk)


Lesenswert?

@  Elbegucker (Gast)

>Oder geht das über eine weitere Tabelle, die dann auf die anderen
>Tabellen verweist?

Ja. Siehe AVR-Tutorial: Mehrfachverzweigung

MfG
Falk

von Uwe (Gast)


Lesenswert?

Hi!

Es lassen sich auch mehrere Parameter an ein Macro übergeben.
Anhand von temp1 kannst du doch auswählen welchen du benutzt.
Nehmen wir mal @0 (Einstellungen_anzeigen),@1(Einstellungen_aendern),
@3(temp)

.macro text_to_lcd
  cpi @3,1
  brne aend
  ldi ZL,Low(@0*2)
  ldi ZH,High(@0*2)
  rjmp Ausg
aend:
  ldi ZL,Low(@1*2)
  ldi ZH,High(@1*2)
Ausg:
    rcall lcd_flash_string
.endmacro

...
text_to_lcd     Einstellungen_anzeigen, Einstellungen_aendern, temp

Ich hoffe das stimmt so.(Syntax ungetestet)

Viel Erfolg, Uwe

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
Noch kein Account? Hier anmelden.