Tommy schrieb:
> Wenn ich zum Beispiel DDRC=0x03 deklariert habe. Dann bedeutet das ja,
> PINC0 bis PINC3 sind Ausgänge und die anderen sind Eingänge.
<Nitpicking>
PINC0, PINC1 sind Ausgänge. Das Bitmuster für 0x03 lautet 0b00000011
<Nitpicking aus>
> Wenn ich
> jetzt zu einem späteren Zeitpunkt DDRC|=(1<<PC4); in irgendeiner anderen
> Headerdatei
> deklariere, dann würde das doch bedeuten, dass die vorherigen Ausgänge
> keine mehr sind oder?
warum?
Da steht Oder
ist in C die Kurzschreibweise für
1 | DDRC = DDRC | ( 1<<PC4 );
|
(und wenn man sich angewöhnen würde links und rechts vom
Zuweisungsoperator ein Leerzeichen zu schreiben, dann könnte das auch
ein Blinder mit Krückstock aus 5 Meter Entfernung ertasten. Wenn man
natürlich alles in einer Wurst ohne irgendwelche Leerräume schreibt,
dann sieht man solche Feinheiten viel schlechter)
Alles was vor der Operation ein 1-Bit in DDRC hatte, hat es auch danach.
Alles was vor der Operation ein 0-Bit in DDRC hatte, hat es auch danach,
mit der einen Ausnahme von PC4. PC4 ist nach der Operation mit
Sicherheit ein 1 Bit.
> Worauf ich eigentlich hinaus will ist folgendes: Wenn ich am PORTD eines
> ATmega 644P beide UASARTS benutze an dann an dem gleiches Register ein
> Bewegungssensor anschließe und dann zum Beispiel DDRC|=(1<<PD4)
> deklariere, kann das dann Probleme auslösen, da die anderen Register
> vielleicht sich dann ändern?
Nein. Kann es nicht.