Forum: Mikrocontroller und Digitale Elektronik Einschaltzustand PORT


von Andy A. (crusty)


Lesenswert?

Servus, ich hab da mal (vielleich eine blöde) Frage.

Und zwar hab ich an einem Port Pin eine LED hängen die an 5V über einen 
Vorwiderstand und dann am Port Pin hängt.

Muss ich jetzt nachdem ich den Pin als Ausgang konfiguriert hab
den Pin auf 1 setzten das die LED aus bleibt oder nicht?
Mir geht es da drum ob die LED nachdem einschalten leuchtet oder nicht.

Auf was ich hinaus will ist eigentlich wie der Einschaltzustand eines 
PINs eigentlich ist, nachdem ich ihn als Eingang/Ausgang definiert habe, 
low oder high?

von Krapao (Gast)


Lesenswert?

> Muss ich jetzt nachdem ich den Pin als Ausgang konfiguriert hab
> den Pin auf 1 setzten das die LED aus bleibt oder nicht?

Wenn du von Eingang auf Ausgang schaltest und den Ausgangspin auf HIGH 
setzt, ist bei deiner Schaltung (active-low) anschließend die LED wie 
gewollt aus.

Wenn du der LED keine Chance geben willst, auch nur ganz kurz zu zucken, 
wenn du von Eingang auf Ausgang umschaltest: Dann setzt du den Pin vor 
dem Umschalten von Eingang auf Ausgang bereits auf HIGH. Technisch 
machst du das, indem du den internen Pull-Up für diesen Pin aktivierst.

von Andy A. (crusty)


Lesenswert?

Ja ok so würde es ja gehen, aber ich schalte ja gar nicht von Eingang 
auf Ausgang, alles was ich am Anfang mache ist DDRB = 0xFF

von Cyblord -. (cyblord)


Lesenswert?

Andy Andy schrieb:
> Ja ok so würde es ja gehen, aber ich schalte ja gar nicht von Eingang
> auf Ausgang, alles was ich am Anfang mache ist DDRB = 0xFF

Und das ist genau ein Umschalten von Eingang (ist er nach dem Reset 
automatisch) auf Ausgang.

von Karl H. (kbuchegg)


Lesenswert?

Andy Andy schrieb:
> Ja ok so würde es ja gehen, aber ich schalte ja gar nicht von Eingang
> auf Ausgang, alles was ich am Anfang mache ist DDRB = 0xFF

Genau damit schaltest du alle Pins vom Port B von Eingang auf AUsgang.

von Cyblord -. (cyblord)


Lesenswert?

Und die Zustände aller Register nach einem Reset findest du im 
Datenblatt. Für die Port und Richtungsregister ist das praktisch immer 
0. Also Eingang. Schaltest du nun auf Ausgang um, so ist der PORT 
Register immernoch 0, also hat der Pin Low Pegel. DDRx und PORTx sind ja 
unabhängige Register.

gruß cyblord

von Andy A. (crusty)


Lesenswert?

Alles klar, dann werde ich dan dem DDRB = 0xFF ein PORTB = 0xFF 
schreiben um alle LED´s auszuschalten.

Besten dank

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.