www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC makro für Page selektion


Autor: HDW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Im Pic 16f877 gibt es vier Seiten im Programm-Speicher.
Ich möchte die Seiten per Makro auswählen.

etwa so:

page0    macro
         bcf     PCLATH, 3
         bcf     PCLATH, 4
         endm


Mein Verständnisproblem: Dieses Makro muss irgendwo gespeichert werden.
Also wohl im Programmspeicher. Dann muss dies aber auf einer der vier
Seiten geschehen.

Mit dem makro möchte ich, wenn ich z.B. in Seite 1 im Programmspeicher
bin, mit dem Aufruf des Makros "page0" auf Seite 0 wechseln.
Wenn jetzt das Makro in Seite 1 gespeichert ist, geht das. Wenn es aber
in Seite 3 liegt, geht das nicht mehr.


Muss ich denn diese Makros vier mal erstellen, auf jeder Seite einzeln?

Oder greift der PIC dann unabhängig von der Seite auf das Makro zu?
Also sucht er praktisch das Makro? Aber das kann er doch sicher nicht,
oder??



mfg    Wolfram Hildebrandt

Autor: HDW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Simulator im MPLAB hat das geklärt.
Die Makros sind nur Assembleranweisungen, die dafür sorgen, dass immer
dann, wenn ein Makro aufgerufen wird, der Inhalt des Makros an diese
Stelle in den Programmspeicher geschreiben wird. Also nur eine
Vereinfachung für den Benutzter.

Autor: Nico Hansen, Björn Sörensen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du kannst die "macros" auch auf einer Seite schreiben, musst aber in
deinem Hauptprogramm in der include mit angeben z.B

include <page0.inc>

das "Unterfenster"(dein macroprogramm) musst du nicht als ASM
speichern, sondern als INC
in deinem Fall mußt du das Macroprogramm als page0.inc abspeichern, wie
in der include angegeben.
Unser problem war ebenfalls, das man ein und das selbe macro nicht
zweimal aufgerufen im Hauptprogramm aufrufen,weil die Labels dann
doppelt benutzt werden.
nehm dann einfach die Lables weg springe mit

goto $-5    (springt 5 Assemblerbefehle nach oben) oder

goto $+5     (dann springt er nach unten)

mfg Björn und nico, die gerade in der Ausbildungswerkstatt sitzen und
die Probleme mit MACRO auch versuchen zu lösen

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.