-
-
Erfahrener Benutzer
Roboter Genie
Also, da ist ein Problem, dass alle PICs unter der 18F Version haben. Die haben zwar einen Pointer (IndF), aber es gibt keine Möglichkeit, damit aus dem Flash zu lesen.
In diesem Fall macht man folgendes:
Eine Unterfunktion liefert die Werte nach dem Zustand eines Zählers zurück.
Lookup:
MOVFW Zähler
ADDWF PCL,F
RETLW 0x55
RETLW 0xA5
...
und in Prog:
INC Zähler
CALL Lookup
damit machst du nichts anderes, als per Variable Zähler den Programm-Counter zu manipulieren. Der RETLW Befehl läd dann vor dem Rücksprung ins Hauptprogramm den Wert in das W-Register.
Das ist leider die einzige Möglichkeit. Alternativ könntest du natürlich die Werte als konstanten definieren und Speicherzellen damit laden, die du dann wieder mit dem Pointer ansprechen kannst. Aber damit hast du den gleichen Speicherverbrauch (denn die Konstanten müssen ja wo stehen) + den Speicherverbrauch im RAM.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen