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:
Ich denk mal, Geübte steigen durch den Code durch.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
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







Zitieren

Lesezeichen