#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
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.
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...
Anton R. schrieb: > Wie bei Feldern... wo hast du solche felder? Aus dem Grund schreibt ma ja auch: DDRB |= 1<<4; DDRB |= 1<<5; und schon ist beides drin.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.