Frage zum C-Code (Beispiel)

Gast #2053671
Lesenswert?

Hi, schaut euch mal folgenden Code an:

#include <avr/io.h>

int main(void)
{
  DDRB = 0b00000001;

  PORTB = 0b00000001;

  return 1;
}

Ich habe an PB0 eine LED mit Vorwiderstand angeschlossen.

Wenn ich Minus der LED an PB0 und Plus der LED an +5V anschließe 
passiert gar nichts obwohl das auch so im Assemblertutorial 
eingezeichnet ist; drehe ich die LED d.h. Plus der LED kommt an PB0 und 
Minus der LED an GND leuchtet sie. Habe ich da was falsch verstanden? 
Geht das nicht auch andersrum?
Gast #2053691
Lesenswert?

Werde ich ausprobieren, danke. Aber wenn du DDRB = 0b00000001 setzt ist 
er doch auf Ausgang gesetz oder? Wie kann ich dann den PORTB = 
0b00000000 (LOW also Minus?) setzen, widerspricht sich das nicht 
irgendwie?
Gast #2053712
Lesenswert?

> Ich habe an PB0 eine LED mit Vorwiderstand angeschlossen.
> Minus der LED an PB0 und Plus der LED an +5V

Das ist eine active low Schaltung:
Die LED leuchtet, wenn PB0 einen LOW Pegel hat.

> DDRB = 0b00000001;
> PORTB = 0b00000001;

Das erzeugt einen HIGH Pegel an PB0.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren