Erstmal Danke an alle für die Antworten 
Vorneweg, ich programmiere in Assembler, hätt ich vlt. dazu schreiben können, aber ich dacht ja, das wär hier auch das Forum, wo auch Assemblerfragen gestellt werden können, najo, auch egal 
@ProgDom:
Deine Variante funktioniert so weit. Also die LED ist am Anfang aus, und wenn ich den Taster drücke, dann geht sie an, allerdings bleibt sie dann auch an, wenn ich den Taster wieder loslasse. Was mir gra einfällt und natürlich noch besser wäre ist: ich drücke Taster --> LED an, ich drücke nochmal Taster --> LED aus, aber dann müsst ich ja irgendwie mit Variablen arbeiten, wo ich den aktuellen LED-Status speicher, oder? Oder denk ich da nun zu sehr an den Hochsprachen? Programmier nämlich sonst immer in C++.
Und was mir noch aufgefallen ist: Manchmal (unregelmäßig) ist die LED auch von Anfang an an, obwohl ich den Taster nich gedrückt habe, weiß aber net, an was das liegt, hmm...
Gruß
Thomas
[edit]
Nach langem hin und her hab ichs noch hinbekommen 
Code:
;Definitionsdatei laden
.include "4433def.inc"
ldi r16, 0b00000000
;Inhalt von r16 ins IO-Register DDRD ausgeben -> PortD als Eingang
out DDRD, r16
ldi r16, 0b11111111
;Inhalt von r16 ins IO-Register DDRB ausgeben -> PortB als Eingang
out DDRB, r16
;Pullups von PortD aktivieren
out PORTD, r16
loop:
;Liegt an D.2 high an? Wenn nicht, dann nächsten Befehl überspringen
sbis PinD, 2
;Wenn ja, dann B.2 auf high setzen
sbi PortB, 2
;Liegt an D.2 low an? Wenn nicht, dann nächsten Befehl überspringen
sbic PinD, 2
;Wenn ja, dann B.2 auf low setzen
cbi PortB, 2
;Sprung zu "loop:" -> Endlosschleife
rjmp loop
Bleibt dann nur noch die Frage offen:
ich drücke Taster --> LED an, ich drücke nochmal Taster --> LED aus, aber dann müsst ich ja irgendwie mit Variablen arbeiten, wo ich den aktuellen LED-Status speicher, oder?
Aber dazu bin ich noch glaube ich zu sehr ein Newbie
Lesezeichen