Julian Baugatz schrieb:
> Die Aufgabenstellung war, daß der Port auf High geht, wenn der Ausgang
> auf Low geht, die Lösung ist binär gesehen also FALSE :-)
Stimmt, ich habe gestern Abend nur gesehen, dass in Olivers Vorschlag
das &= nicht funktonieren kann, da erst die &- und dann die |-Verknüp-
fung erfolgen muss. Dass die Invertierung fehlt, habe ich übersehen.
Dein Vorschlag ist aber auch nicht perfekt, denn zum einen behandelt nur
einen der zwei Eingänge bzw. Ausgänge, zum anderen kann auch er das Aus-
gangsbit nur löschen, aber nicht setzen.
Neuer Vorschlag (PIND wird vor der Verwendung invertiert):
1 | PORTC = PORTC & 0xF3 | (~PIND & 0xC0)>>4;
|
... auf die Gefahr hin, dass ein weiterer Denkfehler darin steckt ;-)
Aber wie gesagt, der vom Compiler erzeugte Code sieht in der ursprüng-
lichen Lösung von Günter mit Abstand am besten aus.