Forum: Mikrocontroller und Digitale Elektronik I/O-Register ansprechen


von David (Gast)


Lesenswert?

Moin

hab eine frage zu den I/O Register;

ldi r16, 0b00000001
out DDRB, r16


Als erstes wird die Konstante (logische 1) ins Register r16 geladen bzw.
dort abgespeichert;

Mit out wird dieses Register r16 wieder ausgegeben an den Port DDRB; da
es sich um eine logische 1 handelt, ist sind alle Port B.0 - B.7 als
Ausgänge konfiguriert, oder?

Bei diesem Bsp steht aber dabei, dass Port B.0 ein Ausgang und Port B.1
bis Port B.7 Eingänge sind. hmmm... heißt das, dass DDRB ohne Nummer das
Pin B.0 anspricht??? und alle Ports automatisch immer zuerst als
Eingänge konfiguriert sind??

Wie kann ich z.B. nur Port B.1 oder B.5 ansprechen?? Geht dass dann über
DDRB1 DDRB3??

David

PS: sorry für das doppelte posting

von Gringo (Gast)


Lesenswert?

Eine Eins heisst Ausgang, eine Null heisst Eingang. Nein, das DDRB gilt 
fuer den ganzen Port, 0b00000001, sieben Eullen und ne Eins. Darstellung 
von Binaerzahlen. PortB.5 wird mit   "or 0b00100000" als Ausgang 
gesetzt.

von Au weia (Gast)


Lesenswert?

http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen

Es gibt auch noch weitere Tutorials, deren Lesen sich lohnt...

von David (Gast)


Lesenswert?

sind die ports wenn keine programmierung vorgenommen wird, als Ein- oder 
Ausgänge programmiert?

von Sigint 112 (sigint)


Lesenswert?

Da hilft ein Blick ins Datenblatt... da steht das drin. Bei AVRs sind 
die PORTS i.d.R. beim Einschalten als Eingang definiert. Das hat den 
einfachen Grund, da Eingänge nur "relativ" schwer zu zerstören sind. 
Einen Ausgang muss man nur kurz gegen Masse oder Betriebsspannung 
schalten und schon ist dieser platt. Und 0b00000001 ist keine logische 
1... eine einzelne Bitstelle kann logisch 1 oder 0 sein. Nur in höheren 
Programmiersprachen (C,BASIC,etc.) definiert man 0b00000001 und 
0b00000000 manchmal als logisch 1 und 0.

Gruß,
   SIGINT

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.