Was ist zuerst geschaltet, ein oder aus?

Gast #6716938
Lesenswert?

Hallo
Habe die LED mit einem Vorwiderstand an Vcc angeschlossen und schalte 
den Pin nach GND, wodurch die LED geschaltet wirde. Bin jetzt aber total 
durcheinander gekomnmen bei welchem Befehl die LED leuchtet oder nicht.
[c]
DDRA=0b00101001;      // DDRA auf Ausgang schalten
  PORTA=0b00101001;      // PortA auf aus/ein
  while(1)          // Programmschleife
  {
    PORTA |=(1<<PINA0);  // LED 3 ein ???
    _delay_ms(500);    // Pause 500ms
    PORTA &=~(1<<PINA0);  // LED 3 aus ???
    _delay_ms(500);    // Pause 500ms
  }
#6716943
Lesenswert?

Finds raus!
zB:
1
DDRA=0b00101001;      // DDRA auf Ausgang schalten
2
  PORTA=0b00101001;      // PortA auf aus/ein
3
  while(1)          // Programmschleife
4
  {
5
    PORTA |=(1<<PINA0);  // LED 3 ein ???
6
    _delay_ms(900);    // Pause 500ms
7
    PORTA &=~(1<<PINA0);  // LED 3 aus ???
8
    _delay_ms(100);    // Pause 500ms
9
  }
Gast #6717042
Lesenswert?

Teo D. schrieb:
> Finds raus!

Gut!
Das war auch mein erster Gedanke 😀.

Klaus schrieb:
> DDRA=0b00101001;      // DDRA auf Ausgang schalten
> PORTA=0b00101001;      // PortA auf aus/ein

Naja, die Kommentare passen nicht so ganz.
Die DDRA-Zuweisung wird nur PA0, PA3 und PA5 auf Ausgang schalten. Und 
die PORTA-Zuweisung wird die selben Pins auf HIGH setzen und für die 
anderen einen offenen Eingang hinterlassen (ist eh der Defaultwert nach 
dem Reset).
Sinnvoller wäre es, falls die restlichen Pins des Ports nicht genutzt 
werden, die entweder alle auf Ausgang zu schalten oder wenigstens deren 
Pullup zu aktivieren:
Also entweder:
DDRA = 0xFF; // alles Ausgänge
oder
PORTA = 0xFF; // PA1,2,4,6,7 PU aktivieren.
Gast #6717409
Lesenswert?

Klaus schrieb:
> Bin jetzt aber total durcheinander gekomnmen bei welchem Befehl
> die LED leuchtet oder nicht.

Dein Ansatz ist schon gut. Wenn du jetzt auch noch unterschiedliche 
Pausenlängen verwendest, lassen sich beide Zustände anhand der 
Einschaltdauer unterscheiden und du siehst, wie die Zuordnung zu deinen 
Portbefehlen aussieht.

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