Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage DDRX PX0-PX7


von Stefan T. (_distance_07)


Lesenswert?

Hallo,

wenn ich z.B. das Register DDRB mit einem Wert von 255 0xFF ... 
beschreibe, heißt das ja, dass PB0 bis PB7 als Ausgang festgelegt sind.

Aber wie lege ich einen einzelnen Pin eines Ports als Ausgang oder 
EIngang fest ?

Mit freundlichem Gruß und ein schönes Wochenende noch

Stefan

von Hubert.G (Gast)


Lesenswert?

www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Datenrichtung_bestimme 
n

von Stefan T. (_distance_07)


Lesenswert?

Ich programmiere in Assembler und das auch erst seit ein paar Tagen, 
will mich jetzt erstmal noch nciht mit C auseinandersetzen.

Hat jemand ne Antwort in Assebler ?


nen kleiner, 4 Zeilen Beispielcode mit Erläuterung würd schon reichen.


MfG

Stefan

von Gregor B. (gregor54321)


Lesenswert?

versucht anhand der obigen Anleitung rauszufinden, warum dez:255, 
hex:0xff, bin:0b11111111 alle Ports als Ausgang schaltet...

von Falk B. (falk)


Lesenswert?

@ Stefan T. (_distance_07)

>Ich programmiere in Assembler und das auch erst seit ein paar Tagen,
>will mich jetzt erstmal noch nciht mit C auseinandersetzen.

AVR-Tutorial: IO-Grundlagen
Bitmanipulation
AVR-Tutorial

>Hat jemand ne Antwort in Assebler ?

Kurzfassung. Die Zahl im Register DDRx musst du binär betrachten, sie 
hat 8 Bits. Jedes Bit entspricht einem IO-Pin vom AVR. Tip es binär in 
den Windowstaschenrechner und rechne in HEX oder dezimal um.

MFg
Falk

von Stefan T. (_distance_07)


Lesenswert?

Also so ?

0x  0     0     0    0     0     0     0     0
   /\    /\    /\   /\    /\    /\    /\    /\
  Pin7  Pin6  Pin5  Pin4  Pin3  Pin2  Pin1  Pin0



MfG

von Falk B. (falk)


Lesenswert?

@ Stefan T. (_distance_07)

>Also so ?

Nicht ganz. Eher so, binär, nicht hex.

0b  0     0     0    0     0     0     0     0
   /\    /\    /\   /\    /\    /\    /\    /\
  Pin7  Pin6  Pin5  Pin4  Pin3  Pin2  Pin1  Pin0

MFg
Falk

von Stefan T. (_distance_07)


Lesenswert?

..aber fast, hatte nur anstatt einen "0b" ein "0x" geschrieben....
Wobei es sich von selbst aufklären müsste, da eine 0x zahl nicht 8 
Stellen lang sein kann.. oder ?


Danke für die Antworten.

MfG

Stefan

von Falk B. (falk)


Lesenswert?

@ Stefan T. (_distance_07)

>Wobei es sich von selbst aufklären müsste, da eine 0x zahl nicht 8
>Stellen lang sein kann.. oder ?

Klar, das ist dann eine 32 Bit Integerzahl ;-)

MFg
Falk

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.