Forum: Compiler & IDEs PIC 16f627 PORTA nicht Bit-Addressierbar?


von Tobias J. (tobiasjohn) Benutzerseite


Lesenswert?

Hallo zusammen,

kann ich die BITs von PORTA nicht einzeln ändern?
Beim HITECH-PICC-Compiler sind die Bits wie folgt definiert:
1
static volatile bit  RA0  @ (unsigned)&PORTA*8+0;

Wenn ich aber folgendes Programm laufen lasse
1
int main() {
2
 RA0 = 1;
3
 RA1 = 1;
4
 RA2 = 1;
5
}

dann ist immer nur das letzt gesetzt bit (im Beispiel RA2) auf "high".
Wenn ich RA1 und RA2 tausche dann ist RA1 auf "high".

Warum?

Gruß,
 Tobias

von holger (Gast)


Lesenswert?

> RA0 = 1;
> RA1 = 1;
> RA2 = 1;

>dann ist immer nur das letzt gesetzt bit (im Beispiel RA2) auf "high".
>Wenn ich RA1 und RA2 tausche dann ist RA1 auf "high".
>
>Warum?

Read-Modify-Write ist dein Problem. Mach das mal so:
 RA0 = 1;
 NOP;
 RA1 = 1;
 NOP;
 RA2 = 1;

von Tobias J. (tobiasjohn) Benutzerseite


Lesenswert?

> Read-Modify-Write ist dein Problem. Mach das mal so:
>  RA0 = 1;
>  NOP;
>  RA1 = 1;
>  NOP;
>  RA2 = 1;

Auf die Idee bin ich auch schon gekommen.
Leider hilft das auch nicht.

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.