Willkommen im Club der Mikrocontroller-faszinierten.
Eine Wertetabelle ist ziemlich einfach. Als Beispiel: du willst den dritten Wert aus der Tabelle holen:
- schreibst 3 in w
- ruftst das Unterprogramm auf: call TASTBUNDEN
- in dem Unterprogramm wird der PC, der Program Counter um den Inhalt von w (hier 3) erhöht, also das Programm springt um 3 Programmadressen weiter
- drei Adressen weiter steht der RETLW, der Rücksprung-Befehl mit einer Konstanten in w, hier mit dem dritten Tabellen-wert
- der Prozessor spring also zurück zur Adresse hinter call TASTBUNDEN und in w ist der dritte Tabellenwert
Einfacher kann ich es nicht erklären. Vielleicht kannst du dir das aufmalen oder in Simulation beobachten, was mit den Werten in w und PC beim Aufruf der Wertetabelle passiert. Wenn man es sich bildlich vorstellen kann, hilft das meistens zu verstehen.
Gruß
witkatz
Ergänzung
Sorry, ich meinte natürlich den dritten Wert in der zweiten Zeile.
addwf PC,f addiert einen offset in den Program Counter, für den ersten Tabellenwert also ersten Wert in deiner ersten Zeile muss 0 in w stehen. Oder?
Microchip nennt das Verfahren Computed GOTO. Vielleicht hilft eine Microchip Doku, alle Klarheiten zu beseitigen: http://ww1.microchip.com/downloads/e...tes/00556e.pdf
Lesezeichen