mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Taster für 1 LED Ansteuerung Problem


Autor: Joey N. (joey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.
ldi r16, 0xFF   
r16
out DDRB, r16 
   
ldi r16, 0x00
out DDRD, r16

ldi r16, 0xFF       ;An allen Pins vom Port D die Pullup-Widerstände
out PORTD, r16 

loop:
    in r16, PIND  ;Anliegende Werte über Taster nach r16 einlesen
    out PORTB, r16
    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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.