Forum: Mikrocontroller und Digitale Elektronik Register Bänke PIC


von Patrick W. (seennoob)


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

von PICMASTER (Gast)


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.

von Patrick W. (seennoob)


Lesenswert?

Also wird bei einem Interrupt vom C Compiler einfach die Registerbank 
gewechselt ?

MFG

von Sven S. (stepp64) Benutzerseite


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

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
Noch kein Account? Hier anmelden.