mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage zu Banking (PIC)


Autor: Erhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe einen PIC16F871, dessen Programmspeicher unterteilt ist in 
Bank0 (0h - 07FFh) und Bank1 (ab 0800h).
Ich möchte nun einige Unterprogramme im Programmspeicher in der Bank1 
ablegen; könnte so aussehen:

      org 0

      Hauptprogramm



      org 0800

      Unterprogramme

Meine Frage wäre nun, was zu beachten ist, wenn ich mit einem Call 
Befehl Unterprogramme aufrufe? Muß ich das STATUS-Bit RP0 setzen vor dem 
Aufruf oder PCLATH verändern?

Alles etwas wirr ;)

Danke für Eure Antworten

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ich habe einen PIC16F871, dessen Programmspeicher unterteilt ist in
> Bank0 (0h - 07FFh) und Bank1 (ab 0800h).

Demnach hätte dein PIC > 2048 Byte Programmspeicher, kann also nicht 
sein.

Was tatsächlich in Bänke unterteilt ist, ist das SRAM. Näheres im 
aktuellen Datenblatt auf Seite 13.

MvH
J.

Autor: SIGINT112 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was mich noch mehr verwirrt ist die Tatsache, daß laut Datenblatt der 
PIC nur 2K x 14 Programmspeicher hat... also von 0x000 bis 0x7FF. Wo 
soll da die zweite Page sein?!? Zudem verlässt du mit CALL oder GOTO in 
keinem Fall die Page0, weswegen du PCLATH eigentlich auch vergessen 
kannst. Die RPx - Flags dienen dazu, den segmentierten Datenspeicher 
umzuschalten... und aus dem kannst du keinen Programmcode ausführen.

Gruß,
  SIGINT

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er hat natürlich mehr als 2048 Byte Programmspeicher :) Aber halt nur 
eine Bank.

Autor: Erhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich Hirnbrannt,

habe mich vertan, habe einen PIC16F874!!!!!!!!!!!!!!!

Das ich mit CALL oder GOTO die Page nicht verlasse, ist mir auch klar.
Ich möchte nur wissen, was ich beim Übergang von 07FF (Page0) auf 0800 
(Page1) beachten muß.

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.