Forum: Mikrocontroller und Digitale Elektronik Attiny2313a STK500 LED leuchted dauernd


von Alex S. (alexschei)


Lesenswert?

Hallo,

Ich habe auf meinem STK500 einen Attiny2313A aufgesteckt. Programmiere 
mit dem AtmelStudio 6.

Bei dem simplen Code
1
DDRB = 0xff; //LED
2
DDRD = 0x00; // Taster
3
4
while(1){
5
6
     PORTB =PIND;
7
8
}

leuchted immer die letzte LED, obwohl der dazugehörige Taster nicht 
gedrückt wird.

Woran kann das liegen?
Wie bekomme ich das weg?

Gruß
Alex

: Verschoben durch Moderator
von Peter D. (peda)


Lesenswert?

Alex Schei schrieb:
> Wie bekomme ich das weg?

Durch Lesen des Datenblattes.

von Rene H. (Gast)


Lesenswert?

Hmm... mit dem Datenblatt lesen dürfte es da nicht getan sein. Du hast 
ein paar Grundlagen wohl nicht so drin.

Hast du dir schon mal die Tutorials hier im Forum durchgelesen? Wenn 
nicht, mach das mal. Wenn ja, machs nochmal.

Ein Taster muss abgefragt werden und kann nicht einfach so einem LED 
(Port Pin) zugewiesen werden.

Grüsse,
René

von Peter D. (peda)


Lesenswert?

Rene H. schrieb:
> Hmm... mit dem Datenblatt lesen dürfte es da nicht getan sein.

Warum nicht?

"Figure 1. Pinout ATtiny2313" sollte die Frage erschöpfend klären.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rene H. schrieb:
> Ein Taster muss abgefragt werden

Genau das macht allerdings das Erwähnen von „PIND“ auf der rechten
Seite einer Zuweisung.

Dass das keine wirklich praxistaugliche Lösung ist, sollte klar
sein, aber funktionieren tut's für den einfachen Zweck.

von Alex S. (alexschei)


Lesenswert?

Vielen Dank für die Antworten.

Den entscheidenden Hinweis lieferte Peter:

Peter Dannegger schrieb:
> "Figure 1. Pinout ATtiny2313" sollte die Frage erschöpfend klären.

Habe es jetzt wie folgt gemacht, mit dem gewünschten Ergebnis:
1
eingang = PIND;
2
    
3
// letztes bis auf 1 setzen, weil 1 LED aus
4
eingang |= (1 << 7);
5
    
6
PORTB = eingang;

Der Fehler sitzt vor dem Rechner...

Danke
Gruß
Alex

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
Noch kein Account? Hier anmelden.