Hans schrieb:
>> Naja, einen Wert muss der Ausgang ja haben, entweder low oder high.
> Die Vermutung hatte ich auch aber ich kenne das von der Atmel
> Mega-Familie so nicht. Hat sich das bei der xmega-Famile etwa verändert?
Das ist bei allen digitalen Systemen so.
Wenn etwas angesteuert wird, dann muss es entweder low oder high sein.
So etwas wie 'nicht gesetzt' gibt es nicht.
Maximal gibt es noch bei manchen Logik-ICs so etwas wie den
Tristate-Zustand, bei dem man im Grunde nichts anderes tut, als die
Ansteuerung der Leitung gezielt abzuschalten.
Bei einem µC ist das normalerweise genau dann der Fall, wenn der Pin auf
Eingang steht. Dann ist der Ausgangstreiber abgeschaltet und die Leitung
darf jeden beliebigen Zustand annehmen, der ihr von irgendjemandem
aufgezwungen wird. Der µC ist einfach nur Messgerät, welches feststellt,
welcher Pegel das ist.
Steht der Pin aber auf Ausgang, dann hat der µC seine Ausgangstreiber
zugeschaltet und dann treibt der die ausgehende Leitung entweder auf Low
oder auf High. Aber eines von beiden muss es sein.
> PORTD.DIR |= PIN4_bm; /*PORTD.4 auf Ausgang gesetzt*/
> PORTD.OUT |= PIN4_bm; /*PORTD.4 auf high-> LED aus*/
>
> auf high setzen?
oder auch in der Reihenfolge anders rum, so dass der Portpin auch dann
schon high ist, wenn der Ausgangstreiber aktiviert wird und es nicht
einen Mykrosekunden langen Zwischenzustand gibt, in dem der Pin schon
auf Ausgang aber noch low ist.