Merkwürdiges Verhalten von Ports?

OP #2757947
Lesenswert?
• ▲
▼
#include Hello


Ich bin ein Neuling was  die µC angeht, aber recht lernfähig:)

Im moment programmiere ich meine Arduino Mega (Atmega2560) mit dem AVR 
dragon+AVR studio 6.

Ich habe eine Frage:

An den Prots PB4 und PB5 sind LED's angeschlossen.
Nun will ich beide anmachen.

Klingt simpel, ist es auch:

#include <avr/io.h>

int main(void) {


  DDRB = 1<<5 ;
  DDRB =1<<4;

  while(1) {
    PORTB =1<<4;
    PORTB = 1<<5;



  }
}



Nun ist es so, dass die LED  am Port 5 nur sehr schwach leuchtet, die 
LED am Port 4 leuchtet gut.

Schreibe ich :
DDRB =1<<4;
DDRB = 1<<5;

ist es umgekehrt, PB4 leuchtet schwach...

Sage ich aber : DDRB =1<<4 | 1<<5;

Leuchten beide OK, genau so wie bei

DDRB = 0b00110000;


Woran liegt das? O_o

PS: PB5 und PB4 sind PWM Ausgänge
OP #2757969
Lesenswert?
• ▲
▼
Peter II schrieb:
> Anton R. schrieb:
>> DDRB =1<<4;
>> DDRB = 1<<5;
>
> damit ist der 1.Anweisung wertlos, du überschreibst das doch wieder.
> damit ist PB4 wieder ein Eingang - PullUp damit led recht dunkel.

Ahsoo.
Ich dachte es passiert folgendes:

//register erst bei 0b00000000
>> DDRB =1<<4;
// Die 1 auf die 4. Stelle schieben: 0b00010000
>> DDRB = 1<<5;
// Weitere 1 auf die 5. Stelle: 0b00110000

Wie bei Feldern...

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.