Banking PIC16F877

Gast #129685
Lesenswert?
• ▲
▼
Hallo zusammen,

es geht um den Programmspeicher des PIC16F877, welcher ja in 4 Bänke
aufgeteilt ist.
Der Speicherplatz in Bank0 erstreckt sich von 0005h bis 07FFh, Bank1
beginnt bei 0800h, usw. .
Nun meine grundsätzliche Frage: Wie muß ich im Programm dem Rechnung
tragen, wenn der Speicherplatz auf Bank0 nicht mehr ausreicht?
Wie sieht es mit Unterprogrammen aus, welche ich mit dem
"call"-Befehl aus Bank1 heraus aufrufe, die sich aber in Bank0
befinden?

Viele Fragen ich weiß, aber bisher hat mein Programmspeicher auf Bank0
immer ausgereicht und ich hatte nie dieses Problem, aber jetzt... :)

Ich bedanke mich schon mal im Voraus für eure Antworten.

Tschau
Gast #129686
Lesenswert?
• ▲
▼
im PCLATH Register die Bits 3 u. 4 setzen o. löschen

beide 0        dann Bank 0
Bit 3= 1 4= 0  dann Bank 1
Bit 4= 1 3= 0  dann Bank 2
beide 1        dann Bank 3

du kannst aber auch lcall od. lgoto schreiben dann werden beide Bits
richtig gesetzt.beim Rücksprung musst du aber wieder in die richtigen
Bits schreiben schreiben.
beschrieben im Dbl Seite 26

gruss l-hase

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.