Ich kenne das STK200 leider nicht; offensichtlich sind die LEDs an +5V
angeschlossen und mit der anderen Seite an den Portpin - somit
invertieren die LEDs.
Um die gewünschte Ausgabe hinzukriegen, gibts eigentlich nur eins: Die
Hardware ändern (LEDs anders anschließen). Oder eben damit leben, daß
die Ausgabe invers ist, aber am Atmel direkt läßt sich da nix machen, es
ist auf jeden Fall so, daß bei einer "0" 0 Volt und bei einer "1" 5 Volt
rauskommen.
Lösung 1:
Man programmiert den Port mit "0", wenn man dann die Portrichtung auf
"1" setzt, kommen 0 Volt heraus. Setzt man die Portrichtung aus "0",
kommt Tristate heraus, mit Hilfe eines externen Widerstands (bei der
LED-Beschaltung gegen 5 Volt nicht notwendig) wird der Pin dann auf 5
Volt gezogen.
Lösung 2:
Falls binäre Zahlen auf dem Port ausgegeben werden sollen, kann man als
"Lesehilfe" das auszugebende Byte vorher invertieren, damit hinterher
das Richtige herauskommt.
Beispiel:
ldi r16,0x0F ;einen Test-Wert ins R16 schreiben
com r16 ;alle Bits invertieren
out PORTB,r16 ;Ausgabe auf den Port (im Beispiel 0xF0)
Hilft das weiter?