Banks adressieren unter C

Gast #1340145
Lesenswert?
• ▲
▼
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
Gast #1340177
Lesenswert?
• ▲
▼
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.
Gast #1340192
Lesenswert?
• ▲
▼
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.
Angehängte Dateien:
Gast #1340310
Lesenswert?
• ▲
▼
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.

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.