Forum: Mikrocontroller und Digitale Elektronik Pins ansprechen


von Wolfgang Steinecker (Gast)


Lesenswert?

Hallo,

enn an PORT-B zum Beispiel 8 Ports vorhanden sind und ich will nur den 
6ten Port als Ausgang definieren, wie schreib ich den Befehl dazu hin ?

OEB= 0x06; ?

Ich bin noch ein Anfänger und das was ich bis jetzt gemacht habe ist das 
ich alle PORTS als Ausgang definiert habe  OEB=0xFF;

Jetzt will ich aber nur einige als Ausgang definiert haben die ich dann 
ein und ausschalte.

Wie geht das dann enn ich zum Beispiel den 6ten und den 4ten 
gleichzeitig als Ausgang haben will, steht das dann in einem Befehl oder 
sind das dann zwei wie zB. OEB=0x06;
        OEB=0x04;

Iergendwie komm ich da nicht ganz weiter, ich bitte um Hilfe.


Danke

MFG Wolfgang

von spess53 (Gast)


Lesenswert?

Hi

Welcher Controller?

MfG Spess

von Wolfgang Steinecker (Gast)


Lesenswert?

8051  AN2131 :)

Fürn Anfang nehme ich mal diesen, anderen meinen AVR ist besser aber ich 
bleib mal bei diesem.

von tom (Gast)


Lesenswert?

Was für einen Controller verwendest Du?
Wie die Port Direction Register zu konfigurieren sind sollte im 
Datenblatt stehen.
Bei einem Atmel AVR heißen die entsprechenden Register beispielsweise 
DDRx, wobei x der Port ist.
PORTB.5 als Ausgang zu setzen wäre in diesem Fall mit einem Schreiben 
einer 32 (2^5) auf das Register DDRB.

von Thomas E. (thomase)


Lesenswert?

Klemmt bei dir das "w"?

Wolfgang Steinecker schrieb:
> OEB= 0x06; ?

Du bist einigermassen auf dem richtigen Weg.
0x06 ist aber nicht der 6. Pin, sondern Pin2 und Pin3.
Jede Binärstelle im Konfigurationsbyte entspricht einem I/O.
Der 6. Pin ist dann 0x40: 01000000
Für den 6. und 4.: 01010000 = 0x50.
Immer beachten: Die Pins werden von 0 - 7 gezählt.

mfg.

von Wolfgang Steinecker (Gast)


Lesenswert?

Meines Wissens nach ist jeder Port am Anfang als Eingang definiert, bis 
man Output-Enable-A,B,C eingibt. Mit diesem Befehl definiert man 
entweder den ganzen Port als Ausgang oder nur ein paar.
Das ist auch meine Frage, wie definiert man nur ein paar Portpins als 
Ausgang ?

OEB=0xFF it das der ganze PORT als Ausgang dient.

OEB=0x01 heißt das nur der erste PIN ein Augang ist.

Aber dnn wirds schwerer ich versuche es andauernd mit 0x05 für den 5ten 
aber das geht nicht, vielleicht ist die Hexadezimalzahl falsch ?

Oder ich will den 5ten und 7ten als Ausgang haben , und alle anderen als 
Eingang...

von tip (Gast)


Lesenswert?

Port / Wertigkeit (in Hex)
0 ->  1
1 ->  2
3 ->  4
4 ->  8
5 -> 10
6 -> 20
7 -> 40
8 -> 80
Zusammenzählen, derjenigen Werte, die verwendet werden als Ausgang.
z.B. Port 5 und 7 -> 0x10 + 0x40 => 0x50

von Thomas E. (thomase)


Lesenswert?

tip schrieb:
> 0 ->  1
> 1 ->  2
> 3 ->  4
.
.
> 8 -> 80

Da hast du dich aber etwas vertan.

mfg.

von Wolfgang Steinecker (Gast)


Lesenswert?

´Danke für die schnellen Antworten Leute, aber stimmt das jetzt vom 
"tip" ?

MFG

von tip (Gast)


Lesenswert?

Stimmt

Thomas Eckmann schrieb:
> Da hast du dich aber etwas vertan.

ohje, hast recht!
nochmals ein versuch:

Port / Wertigkeit (in Hex)
0 ->  1
1 ->  2
2 ->  4
3 ->  8
4 -> 10
5 -> 20
6 -> 40
7 -> 80

von Thomas E. (thomase)


Lesenswert?

Wolfgang Steinecker schrieb:
> r stimmt das jetzt vom
> "tip" ?

Fast.

>0->  1
>1 ->  2
>3 ->  4
>4 ->  8
>5 -> 10
>6 -> 20
>7 -> 40
>8 -> 80

So ist es richtig:

0 ->  1
1 ->  2
2 ->  4
3 ->  8
4 -> 10
5 -> 20
6 -> 40
7 -> 80

mfg.

von Wolfgang Steinecker (Gast)


Lesenswert?

Danke euch sehr :)

Also wenn ich jetzt zum Beispiel den ersten dritten und 7ten Portausgang 
als Ausgang definieren will schreib ich das dan so auf :

Erster Portausgang ist 0x01;
Dritter ist            0x04;
Und 7er ist            0x40;

Also ergibt das dann 0x45;  Also OEB=0x45 ?


MFG

von Justus S. (jussa)


Lesenswert?

schau dir doch einfach die Binärschreibweise an...

von Programist (Gast)


Lesenswert?


von Wolfgang Steinecker (Gast)


Lesenswert?

Danke Leute, habs gerade in die Praxis umgesetzt und es funktioniert :)

MFG

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.