Hallo Leute, ich habe ein kleines Problem: Ich habe ein Programm für ein LCD geschrieben, dass viel Text in Form verschiedener Character-Arrays enthält. Den Text würde ich deshalb gerne in einer separaten Bank abspeichern. Aber wie genau mache ich das? Die Register RP0 und RP1 müsste ich ja dann umstellen, hatte mir das so gedacht: 1) RP0, RP1 auf Bank2 setzen (0b10) 2) Deklaration der Felder, z.B. uchar Test[4] = {'T','e','s','t'}; 3) RP0, RP1 auf 0b00 zurücksetzen Aber das klappt im Compiler nicht, wie soll ich es sonst machen? Gruß Pic-Mensch
1. Welcher Compilter (mikroC, CC5X, ...)? 2. Welcher PIC? Bitte deinen Code posten, falls der Compiler ein LST-File (ASM) macht auch dieses. In ASM schaltest du die RAM-Bank mit den Bits RP0, RP1 im STATUS-Register um, dies ist schon so korrekt. Wie das dein C-Compiler macht, weiss ich nicht. Vermutlich entscheidet der automatisch in welche RAM-Bereiche er etwas speichert und du merkst garnicht, in welcher Bank das liegt, da dann auch das RAM-Bankswitching abgenommen wird.
Also ich verwende den PIC16F627A mit dem Compiler PICC-Lite. Die Register etc. sind alle per Headerdatei vordefineirt, so auch RP0 und RP1 (als Bits des STATUS-Registers). Das RAM-Bankswitching wird mir vom Compiler abgenommen, das stimmt leider. Bank1 z.B. ist komplett leer, aber Bank0 zu 99.9% voll. Super. Der Code ist relativ lang, ich lasse mal die unbedeutenden Infos raus, und hänge ihn dann hier an.
Schei*sse wie genial ist das denn gelöst, habe es gerade in der Doc zum PICC-Lite gefunden; um Variablen in einer speziellen bank zu haben macht man es so: bank1 uchar variable; Da wär ich nie drauf gekommen.
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.