Forum: Mikrocontroller und Digitale Elektronik Banking PIC16F877


von Erhard (Gast)


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

von Anton Linebach (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.