Einige Hintergrundinformationen. Ich benutze MPLABx mit einem PicKit2, um verschiedene Arten von Bildern zu programmieren. Im Moment ist es der 16F887. Ich versuche, mich an die Hi-Tech PICC Lite-Werkzeugkette zu halten, bin aber zunehmend unzufrieden mit der Zusammenstellung einiger Dinge. Operationen, die relativ schnell sein sollten (unter Berücksichtigung des 500-ns-Befehlszyklus bei 8 MHz), benötigen bis zu 20 us. Also habe ich angefangen, meinen eigenen ASM-Code einzufügen, um damit umzugehen.
Ich habe jedoch Schwierigkeiten, die im Datenblatt auf Seite 20 bereitgestellte Speicherzuordnung zu verstehen .
Der Programmspeicher beginnt um 0005h. Seite 23 zeigt jedoch Dateiadressen von Sonderregistern, wie z. B. Port A. Die Adresse von Port A wird als "05h" angezeigt.
Ich bin verwirrt, wie man zwischen einem Speicherort 0005h und dem Sonderregister um 05h unterscheidet. Wie verweise ich auf die Sonderregister?
Ich habe ziemlich umfangreiche Assembler-Programmierung für ältere HC11-Chips durchgeführt, aber dies ist mein erstes Projekt in der PIC-Asm-Codierung. Jede Hilfe hier wäre dankbar.
Was Dave gesagt hat, aber ich möchte auch darauf hinweisen, dass der Programmspeicher bei 0 und nicht bei 5 beginnt. Beim Zurücksetzen setzt der Prozessor den PC auf 0 und beginnt zu laufen. Bei einem Interrupt verursacht der Prozessor effektiv einen Aufruf an Position 4 und schaltet das globale Interrupt-Aktivierungsbit aus. Der Programmspeicherplatz 5 ist nicht speziell, außer dass dies die zweite Anweisung der Interruptroutine ist, wenn Sie eine Interruptroutine haben.
quelle