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
> 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.
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
Er hat natürlich mehr als 2048 Byte Programmspeicher :) Aber halt nur eine Bank.
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ß.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.