mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Banks adressieren unter C


Autor: PIC-Mensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: sergey09 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: PIC-Mensch (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: PIC-Mensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.