Forum: Mikrocontroller und Digitale Elektronik Wie setze ich PR0/PR1 im Statusregister mit nem c-compeiler


von alex (Gast)


Lesenswert?

Hallo erstmal,
kann mir einer verraten, wie ich unter c zwischen den Bänken des
Datenspeichers schalten kann?

von Peter Dannegger (Gast)


Lesenswert?

Am besten nimmt man einen Chip, der solche Schweinereien erst garnicht
nötig hat (8051, ARM, AVR usw.).


Ansonsten sollte man vielleicht erstmal verraten um welchen Chip es
ganz genau geht und um welchen Compiler.


Peter

von alex (Gast)


Lesenswert?

Es ist ein 16F876A pic und es ist ein PCW c-compeiler
ich habe es auch schon in assembler unter c auf folgende Weise
versucht:

#asm
bsf STATUS,PR1
#endasm

aber er beschwert sich und sagt, das er STATUS nicht kennt.

von Jens (Gast)


Lesenswert?

Also erstmal gibts kein PR0 und PR1 sondern RP0 und RP1, war aber sicher
nur ein Verschreiber.

Ansonsten sollte es so funktionieren:

#asm
bsf 0x03,6
#endasm

von Peter Dannegger (Gast)


Lesenswert?

Ich kenne den PIC nicht, aber ich erwarte eigentlich, daß der Compiler
die Variablen und Register selber verwaltet und die Bänke automatisch
umschaltet, wenn er es für nötig erachtet.

Schließlich ist ein C-Compiler ja gerade dazu da, um einen von solchem
Kleinkram zu entlasten. Im Gegenteil, wenn man dem Compiler ins
Handwerk pfuscht, kann das unangenehme Folgen haben.


Egal, in welcher Bank ein Register liegt, mal einfach über den
vordefinierten Namen auf das Register zugreifen und dann mal ins
Assemblerlisting gucken, ob da nicht schon die nötige Umschaltung mit
drin ist.


Peter

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.