Forum: Mikrocontroller und Digitale Elektronik AVR PIN als Eingang schalten


von Lokus P. (derschatten)


Lesenswert?

Ich stehe da momentan am Schlauch.

ich möchte gernen einen PIN des AVR auf Eingang schalten in der Hoffnung 
das dort kein HI oder LO anliegt.
Das mache ich mittels:
1
#define SCHALTER_PORT  PORTD
2
#define SCHALTER_DDR  DDRD
3
4
#define RESET  0x80
5
6
SCHALTER_DDR &= ~(RESET);         
7
SCHALTER_PORT |= (RESET);

Das sollte PD7 sein bei einem MEGA8.

Nur wenn ich dort messe, liegen trotzdem 5V an.
Wo ist hier der Fehler?

von Marius W. (mw1987)


Lesenswert?

Manfred W. schrieb:
>
1
SCHALTER_PORT |= (RESET);

Damit schaltest du die internen Pullup-Widerstände ein.

Gruß
Marius

von Lokus P. (derschatten)


Lesenswert?

Das bedeutet ich darf den PullUp nicht aktivieren wenn ich den PIN auf 
Eingang schalte?

von spess53 (Gast)


Lesenswert?

Hi

>Das bedeutet ich darf den PullUp nicht aktivieren wenn ich den PIN auf
>Eingang schalte?

Darfst du schon, denn der Pin muss ein definiertes Potential haben.

MfG Spess

von Lokus P. (derschatten)


Lesenswert?

Wie bekomme ich dann den Zustand "offen" ?

von HildeK (Gast)


Lesenswert?

Manfred W. schrieb:
> Das bedeutet ich darf den PullUp nicht aktivieren wenn ich den PIN auf
> Eingang schalte?


> Wie bekomme ich dann den Zustand "offen" ?
In dem du den PullUp deaktivierst!
Aber, der Pin ist auch mit aktivem PullUp quasi offen. Das sind doch nur 
einige 10k, die nach VCC ziehen. Es ist trotzdem ein Eingang, den man 
bewegen kann.
Man kann eben nicht alles haben ...

von spess53 (Gast)


Lesenswert?

Hi

>Wie bekomme ich dann den Zustand "offen" ?

Sag doch einfach, was du vor hast.

MfG Spess

von Treter_Peter (Gast)


Lesenswert?

Manfred W. schrieb:
> Wie bekomme ich dann den Zustand "offen" ?

Dazu den internen PullUp-Widerstand deaktivieren. Und Extern den Pin mit 
einem 10K Wiederstand nach masse verbinden. (PullDown-Widerstand)
Eigentlich sollte der Interne PullUp Standartmässig bereits Aus sein. 
Siehe Dazu Datenblatt des Controllers.
Ausführliche Info's findest du hier: Stichwort Taster und Schalter
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

von Lokus P. (derschatten)


Lesenswert?

Zieht das den PIN dann nicht wieder auf LO? Welchen Wert muß der 
Widerstand haben?

von Rolf M. (rmagnus)


Lesenswert?

Treter_Peter schrieb:
> Eigentlich sollte der Interne PullUp Standartmässig bereits Aus sein.

Ist er ja auch. Sogar liegend. Aber mit

Manfred W. schrieb:
> SCHALTER_PORT |= (RESET);

wurde er eingeschaltet. Wenn er nicht gewünscht ist, muß man ihn gar 
nicht ausschalten. Es reicht schon, ihn einfach nicht einzuschalten.

Manfred W. schrieb:
> Zieht das den PIN dann nicht wieder auf LO?

Ja, genau dazu macht man das ja. Ein Eingang, der einfach "in der Luft" 
hängt, ist keine gute Idee. Er sollte immer entweder nach GND oder nach 
VDD gezogen werden.

von Hmm (Gast)


Lesenswert?

>Wie bekomme ich dann den Zustand "offen" ?

Letztlich sind die Pins immer irgendwie mehr oder weniger hochohmig mit 
irgendeinem Potential verbunden; egal, welche Pinkonfiguration Du 
einstellst.
Was "offen" ist, hängt davon ab, was Du von aussen an den Pin 
d'ranhängst; was sein Widerstand ist, ob es Quelle oder Senke ist, was 
seine Dynamik ist.

Schreib uns doch mal, was genau Du vorhast. (Aus gegebenen Anlass: 
Schreibe uns den gesamten Zusammenhang; die ganze 
Ursache/Wirkungskette). Dann schreibe uns warum Du einen "offenen" 
Eingang für eine Lösung des Problems hälst.

von Lokus P. (derschatten)


Lesenswert?

Das ganze sollte deshalb offen sein, weil das Signal das dort anliegt im 
Betrieb ein Datenstrom ist und der natürlich zwischen den Zuständen 
wechselt.
Er soll nur kurz auf LO gezogen werden damit ein Ereignis stattfindet.

von Hmm (Gast)


Lesenswert?

Das hier:

>Das ganze sollte deshalb offen sein, weil das Signal das dort anliegt im
>Betrieb ein Datenstrom ist und der natürlich zwischen den Zuständen
>wechselt.
>Er soll nur kurz auf LO gezogen werden damit ein Ereignis stattfindet.

soll die Antwort auf diese Fragen sein?

>Letztlich sind die Pins immer irgendwie mehr oder weniger hochohmig mit
>irgendeinem Potential verbunden; egal, welche Pinkonfiguration Du
>einstellst.
>Was "offen" ist, hängt davon ab, was Du von aussen an den Pin
>d'ranhängst; was sein Widerstand ist, ob es Quelle oder Senke ist, was
>seine Dynamik ist.

>Schreib uns doch mal, was genau Du vorhast. (Aus gegebenen Anlass:
>Schreibe uns den gesamten Zusammenhang; die ganze
>Ursache/Wirkungskette). Dann schreibe uns warum Du einen "offenen"
>Eingang für eine Lösung des Problems hälst.

Das halte ich, offen gesagt, wie sehr, für extrem optimistisch.

von Karl H. (kbuchegg)


Lesenswert?

Manfred W. schrieb:
> Das ganze sollte deshalb offen sein, weil das Signal das dort anliegt im
> Betrieb ein Datenstrom ist und der natürlich zwischen den Zuständen
> wechselt.
> Er soll nur kurz auf LO gezogen werden damit ein Ereignis stattfindet.

Na dann passt es ja wahrscheinlich mit dem Pullup.

Du darfst dir das was du misst nicht so vorstellen, dass da jetzt etwas 
mit aller Macht den Pin nach +5V zieht.

Das ist eher so ein schwaches Gummiband, welches die Tür gerade noch 
zuzieht. Selbst der schwächste 2-jährige schafft es trotz Gummiband 
problemlos, die Tür aufzumachen. Selbst wenn hinter ihm das Gummiband 
die Tür dann wieder zuzieht.

Der Pullup ist dein 'Gummiband', welches dem Pin einen definierten Pegel 
verpasst, selbst wenn da nichts drann hängt.

von Treter_Peter (Gast)


Lesenswert?

Manfred W. schrieb:
> das Signal das dort anliegt im
> Betrieb ein Datenstrom ist

Reden wir jetzt von einem PWM - Signal?

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.