Hallo,

sry, dass ich nochmal nerve, aber ich probier schon die ganze Zeit, sone Art "Lichtschalter" hinzubekommen.
Vorneweg erstmal: Ich hab das myAvr-Board 1.4
Hab einen Taster mit PortD.2 und einen Taster mit PortD.3 verbunden. Dann hab ich noch eine LED mit PortB.2 verbunden. Wenn ich den Taster1 (PortD.2) drücke, soll die LED ausgehen und wenn ich Taster2 (PortD.3) drücke, soll die LED angehen. Ich bekomms einfach net, vlt. könnt ihr mir weiterhelfen, das ganze möcht ich gern mit Assembler realisieren.

Hier mein Code:
Code:
.include "m8def.inc"

.def temp = r16

		ldi temp, LOW(RAMEND)		;LOW-Byte der obersten RAM-Adresse
		out SPL, temp
		ldi temp, HIGH(RAMEND)		;HIGH-Byte der obersten RAM-Adresse
		out SPH, temp

		ldi temp, 0b00000000
		out DDRD, temp				;PortD als Eingang
		ldi temp, 0b11111111
		out DDRB, temp				;PortB als Ausgang
		out PortD, temp				;Pullups von PortD aktivieren

main:
		sbic PIND, 2				;Liegt an D.2 low an? Wenn nicht, dann nächsten Befehl überspringen
		sbi PortB, 2				;Wenn ja, dann B.2 auf high setzen

		sbic PIND, 3				;Liegt an D.3 low an? Wenn nicht, dann nächsten Befehl überspringen
		cbi PortB, 2				;Wenn ja, dann B.2 auf low setzen

rjmp main							;Endlosschleife
Ich denk mal, Geübte steigen durch den Code durch.

Das was er jetzt macht: Am Anfang leuchtet die LED ganz schwach (soll aber ganz aus sein). Wenn ich auf einen Taster drücke, geht sie aus (wenn ich ihn aber wieder loslasse, ist sie wieder schwach an) und wenn ich auf den anderen Taster drücke, leuchtet sie stark (geht dann aber auch wieder auf schwach, wenn ich den Taster loslasse )

Gruß
Thomas