Hi, vielleicht kann jemand helfen. Bin Anfänger. Wollte auf dem STK500 eine LED (LED0) über einen Taster (SW0) ansteuern. das funktioniert auch, allerdings auch bei jedem anderem Schalter sowie die dazugehörige LED. Hat jemand eine Idee? Die anderen Taster und LEDs sollen bei Betätigung aus bleiben. Danke gruss aus HH ldi r16, 0x01 ;den Wert 0x01 (entspricht 0b00000001) in das Register r16 out DDRB, r16 ;Ausagbe das Registers r16 in das IO Register DDRB ldi r16, 0x00 out DDRD, r16 ;Alle Pins am Port D durch Ausgabe von 0x00 ins ;Richtungsregister DDRD als Eingang konfigurieren ldi r16, 0x01 ;An allen Pins vom Port D die Pullup-Widerstände out PORTD, r16 ;aktivieren. Dies geht deshalb durch eine Ausgabe ;nach PORTD, da ja der Port auf Eingang gestellt ist. loop: in r16, PIND ;Anliegende Werte über Taster nach r16 einlesen out PORTB, r16 rjmp loop
Du hast nur PB0 als Ausgang konfiguriert. Der Rest ist Eingang, wenn du in einen Eingang eine 1 schreibst, aktivierst du den PullUp. Dieser genügt um die Led leuchten zu lassen.
hubert hat wohl kein stk500. bei dem stk500 leuchten die LED's bei einer 0 am ausgang und sind bei einer 1 aus. auch bedeutet ein betätigter taster eine 0 und unbetätigt 1. d.h. ausgänge mit 0 leuchten; evtl leuchten auch eingänge ohne aktivierte pull-ups (kann ich gerade nicht genau sagen. d.h.
1 | ldi r16, 0xFF |
2 | r16 |
3 | out DDRB, r16 |
4 | |
5 | ldi r16, 0x00 |
6 | out DDRD, r16 |
7 | |
8 | ldi r16, 0xFF ;An allen Pins vom Port D die Pullup-Widerstände |
9 | out PORTD, r16 |
10 | |
11 | loop: |
12 | in r16, PIND ;Anliegende Werte über Taster nach r16 einlesen |
13 | out PORTB, r16 |
14 | rjmp loop |
da nun alle angeschlossenen LED's tatsächlich auch ein richtiger ausgang sind und alle nicht betätigten taster der korrespondierenden LED eine 1 liefern sollten die alle aus sein.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.