mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Register Bänke PIC


Autor: Patrick Weinberger (seennoob)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo alle

Wie ist das mit den Registerbänken bei den PICs ?
Welche Modelle haben mehrere?

Wird das Bank umschalten automatisch gemacht vom Compiler bei 
Interrupts?

MFG Patrick

Autor: PICMASTER (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die meisten PIC's haben mehre RAM-Bänke, um so "größer" um so mehr RAM. 
Da gibt es viele Typen, daher macht es keinen Sinn, diese pauschal 
aufzählen zu wollen.

Auf Assembler-Ebene erfolgt das Bank-Switching nicht automatisch. Im 
C-Quellcode gelten nur die C-Konventionen, alles andere sollte ein 
C-Compiler automatisch beherrschen.

Ähnlichs gilt auch für das Page-Switching im ROM(Flash). Ist aber nur 
für die PIC16... interessant (kein linearer Adreßbereich). Die PIC18... 
können Ihren ROM linear adressieren --> kein Page-Switching notwendig.

Bei den dsPIC und den PIC32 bin ich mir da jetzt nicht sicher, aber ich 
denke mal das neuere PIC's als die 18er Familie Ihren ROM auch linear 
adressieren können.

Autor: Patrick Weinberger (seennoob)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wird bei einem Interrupt vom C Compiler einfach die Registerbank 
gewechselt ?

MFG

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hat mit Interrupt nichts zu tun. Je nachdem in welcher RAM-Bank 
deine Variablen (Register) liegen muss diese entsprechend vor dem Lesen 
oder Schreiben der Variable eingestellt werden. Ein C Compiler sollte 
dies automatisch tun. Bei Assembler musst du es selbst umschalten.

Schau einfach mal in Datenblatt zu deinem PIC. Dort findest du meist 
relativ weit am Anfang die Speicherbelegung. Daraus kannst du sehr gut 
erkennen in welcher Bank welches Register liegt und wo sich dein freier 
RAM befindet.

Gruß
Sven

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.