Forum: Mikrocontroller und Digitale Elektronik Pollin-Board, Dunkle LED


von Matthias S. (matstorm)


Lesenswert?

Hallo alle zusammen,

ich hab jetzt meinen ISP-Programmer bekommen und er funktioniert, nun 
hab ich jedoch ein Problem: Ich hab ein Programm geschrieben, bei dem 
eine LED angeht, sobald ein Knopf gedrückt wird, ausgeführt auf dem 
Pollin-Board V2.0:
1
#define F_CPU 8000000
2
#include <avr/io.h>
3
4
int main(void)
5
{
6
  DDRD |= (1<<PD2);
7
    while(1)
8
    {
9
        if(PIND & (1 << PD2))
10
    {
11
      PORTD |= (1<<PD5);
12
      PORTD |= (1<<PD6);
13
    }
14
    else
15
    {
16
      PORTD &= ~(1<<PD5);
17
      PORTD &= ~(1<<PD6);
18
    }            
19
    }
20
}

Es funktioniert, aber die LED, die aufleuchtet, leuchtet so dunkel, dass 
man es fast garnicht sieht, während die Netz-LED enorm hell leuchtet. 
Ich hatte mal vor glaube einem halben Jahr mich mit Bascom und dem 
Atmega8 auseinandergesetzt, jetzt will ich mit C weitermachen, aber als 
ich in BASCOM die Programme geschrieben habe, leutete die LED hell, dh 
ja nur, dass ich in der Software auf etwas nicht geachtet habe. Was habe 
ich denn vergessen, oder woran könnte es liegen?
Danke im Voraus.

Grüße, Matstorm

von Michi (Gast)


Lesenswert?

Matthias S. schrieb:
> DDRD |= (1<<PD2);
Die Ausgänge zu den LEDs müssen per DDRx gesetzt werden.

von Peter II (Gast)


Lesenswert?

irgendwie hast du im code die Aus und Eingänge verwechselt.

 DDRD |= (1<<PD2);

setzt PD2 auf Output, aber bei setzen der LED verwendest du die andere 
Pins.

von Matthias S. (matstorm)


Lesenswert?

AUTSCH hab den Fehler gefunden >_<

Hab das Data Direction Register falsch eingestellt. Ich entschuldige 
mich für diesen Thread.

von Matthias S. (matstorm)


Lesenswert?

Was mir in diesem Forum aufgefallen ist, ist die Tatsache, dass hier 
direkt einem geholfen wird. Auch wenn ich die Beiträge erst später 
gelesen habe, möchte ich mich bei euch dennoch bedanken ^^
Gibt es hier im Forum auch eine Funktion, die einen Thread als 
"Erledigt" markiert?

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.