Bestimmte Ausgänge von Ausgangsport manipulieren

Gast #1717270
Lesenswert?

Hallo!

Ich habe eine Frage bezüglich der Portmaskierung bei Ausgängen.
Ich möchte vom Port 1 Bit 6 und 7 ändern, Bit 7 soll an sein, Bit 6 aus, 
die anderen sollen jedoch unbeeinflusst bleiben.

Ich habe es mit
1
(P1OUT & 0xCO) = 0x80;
probiert, jedoch bekomme ich eine Fehlermeldung, dass P1OUT "a 
modifiable value" sein muss.

Wie kann ich das lösen?


Vielen Dank!
Gast #1717311
Lesenswert?

ohforf schrieb:
> Bit 7 setzen:
> P1OUT |= 0x80;
>
> Bit 7 löschen:
> P1OUT &= ~0x80

Ja, das ergibt Sinn, klar geht das so, aber ich möchte in einem Rutsch 
Bit 6 und 7 meines Ausgnagsports manipulieren.

Also als Pseudo-Quelltext:

(Ausgangsport 1 UND_ZWAR_NUR_BIT6_UND_BIT7) = BIT6_AUS_UND_BIT7_AN

Wenn ich P1OUT = 0x80, dann schreibe ich ja auf den ganzen Port.
#1717368
Lesenswert?

Gerd Harsen schrieb:
> Karl heinz Buchegger schrieb:
>> Wenn dir das Kopfzerbrechen macht, dann brauchst du dringend ein C-Buch
>
> Ja, das brauche ich! Kannst du mir trotzdem grad damit helfen und mir
> ggf. viellicht ein gutes Buch empfehlen?

Den Klassiker

Kernighan & Ritchie, Programmieren in C

Aber das steht in jedem C Buch
Das erklärt dir nämlich, dass diese ganzen Operatoren

   a op= b

Kurzschreibweisen für

   a =  a op b

sind.

Also steh bei dir

    P1OUT = P1OUT & ( ~H1 = ~H1 | H2 );

wie willst du denn an ~H1 etwas zuweisen? Ganz besonders dann, wenn H1 
eigentlich zb eine Konstante ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren