Forum: Mikrocontroller und Digitale Elektronik Label ändern in Interrupt - Assembler?


von Elmar (Gast)


Lesenswert?

Hallo Leute - ich hab folgende Frage...und wäre froh über Antworten

ich hab mehrere Tabellen mit Bytes. Ich fahr mit dem Z-Pointer darauf. 
So in etwa.
1
ldi ZL, LOW (Test*2)    
2
  ldi ZH, HIGH(Test*2)

Jetzt habe ich eben noch andere Werte - also nicht nur die die unter 
Test: stehen - kann ich jetzt irgendwie in einem Interrupt - am besten 
den Receive Complete Interrupt der Seriellen Schnittstelle - quasi das 
Test in Test2, Test3, Test4,... je nach dem was eben gedrückt worden 
ist, ändern?

Elmar

von Falk B. (falk)


Lesenswert?

@ Elmar (Gast)

>ich hab mehrere Tabellen mit Bytes. Ich fahr mit dem Z-Pointer darauf.
>So in etwa.

>ldi ZL, LOW (Test*2)
>  ldi ZH, HIGH(Test*2)

>Jetzt habe ich eben noch andere Werte - also nicht nur die die unter
>Test: stehen - kann ich jetzt irgendwie in einem Interrupt - am besten
>den Receive Complete Interrupt der Seriellen Schnittstelle - quasi das
>Test in Test2, Test3, Test4,... je nach dem was eben gedrückt worden
>ist, ändern?

Ganz einfach per [[AVR-Tutorial: Mehrfachverzweigung | 
Mehrfachverzeigung]]. In jedem Zweig lädst du dann den entsprechenden 
Pointer. Ein Label während der Programmlaufzeit ändern geht 
logischerweise NICHT!

MfG
Falk

von Tom (Gast)


Lesenswert?

> ... kann ich jetzt irgendwie ... ändern?

Nee, aber du kannst zu dem Z gerne was dazu addieren. Etwa so:

  add zl, low (test2-test)
  adc zh, high (test2-test)   ; UNTESTED

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.