Forum: Mikrocontroller und Digitale Elektronik Input und Output am gleichen Pin


von Hermann Mikroc (Gast)


Lesenswert?

Hallo,

kann ich an einen AVR I/O sowohl einen Eingang als auch Ausgang 
anschließen?

Ich möchte mir eine Lochrasterplatine zusammenlöten, an der sich 
Schalter (Kodierschalter) und Leds befinden.

Ich habe einen ganzen Port zur Verfügung.

Nun würde ich das ganze so machen, dass an jedem IO sowohl eine Led als 
auch ein Taster sich befindet. In der Software möchte ich dann 
entscheiden, ob ich das ganze als Ein oder Ausgang nutzen möchte.

von Ulrich F. (Gast)


Lesenswert?

Hermann Mikroc schrieb:
> In der Software möchte ich dann
> entscheiden, ob ich das ganze als Ein oder Ausgang nutzen möchte.

Und mit dem Taster dann den auf Ausgang geschalteten Pin kurzschließen?
Nee....

Vorschlag:
Mach dir eine Taster Matix. Das spart Pins.
Und verwende für die LEDs Charlieplexing. Das spart Pins.

von Stefan (Gast)


Lesenswert?

Klar kannst du machen.

von uwe (Gast)


Lesenswert?

Man kann sowas mit open collector (bzw. Drain) schon machen, die Taster 
tasten nach GND die LEDs haben einne Vorwiderstand und sind nach VCC 
angeschlossen, der AVR kann nur nach GND ziehen noch ein paar Pullups 
and die AVR Ports (oder interne)...
Ansonsten brauchst du zwei antiparalle Latches mit Tristate Funktion.
Oder ein paar Schieberegister mit parallen Eingängen bzw. Ausgaängen.
Oder Matrix ansteuerung der LEDs bzw. Auslesen der Taster.

von Karl (Gast)


Lesenswert?

Ulrich F. schrieb:
> Und mit dem Taster dann den auf Ausgang geschalteten Pin kurzschließen?
> Nee....

Mit ein paar Widerständen lässt sich der Kurzschluss vermeiden und 
sicher etwas sinnvolles erreichen.

von Peter D. (peda)


Lesenswert?


von Georg (Gast)


Lesenswert?

uwe schrieb:
> die Taster
> tasten nach GND die LEDs haben einne Vorwiderstand und sind nach VCC
> angeschlossen

Dann leuchtet die LED, solange der Taster gedrückt wird. Eine getrennte 
Ein-Ausgabe-Funktion ist das nicht.

Übrigens geht die LED auch aus, wenn der Taster abgefragt wird, aber das 
sieht man wahrscheinlich nicht.

Karl schrieb:
> Mit ein paar Widerständen lässt sich der Kurzschluss vermeiden und
> sicher etwas sinnvolles erreichen.

Sicher, aber das braucht dann mehr Platz als ein zusätzlicher I/O-IC.

Georg

von Karl H. (kbuchegg)


Lesenswert?

Georg schrieb:
> uwe schrieb:
>> die Taster
>> tasten nach GND die LEDs haben einne Vorwiderstand und sind nach VCC
>> angeschlossen
>
> Dann leuchtet die LED, solange der Taster gedrückt wird. Eine getrennte
> Ein-Ausgabe-Funktion ist das nicht.

Mag sein.
Ist aber mglw. auch nicht gefordert.


Ich hab mir auch für mein 'Entwicklungssystem' mehrere I/O Platinen 
gemacht, die auch am Steckplatz für einen kompletten Port anstecken 
kann. Ich eiss ja zu diesem Zeitpunkt, wie welches Bit benutzt wird.
Wenn eine der LED mitleuchtet, wenn ich eine Taste drücke, dann kratzt 
mich das eher weniger. Und dass ich eine Taste nicht drücke, auf der ich 
programmtechnisch eine Ausgabe mache, so weit hab ich mich selbst schon 
im Griff.
Dafür hat jede I/O Platine wieder einen weiteren Steckplatz, an der 
nachfolgende Platinen angesteckt werden können (anstatt direkt an den 
Port-Steckplatz). Das ist dann recht sinnvoll, wenn ich mir einen 
Überblick über das Geschehen an den Portleitungen verschaffen will. Wenn 
das nicht klar ist, dann schalte ich eine I/O Platine dazwischen und die 
LED zeigen mir, was sich auf den Leitungen tut. Wieder: das jucken in 
den Fingern, eine Taste zu drücken, kann ich unterdrücken.


Ob eine derartigen Funktionalität sinnvoll ist oder nicht, kann man 
allgemein nicht entscheiden. Für mich ist sie in einem 
Entwicklungssystem sinnvoll.

: Bearbeitet durch User
von Hermann Mikroc (Gast)


Lesenswert?

Ja, ich möchte das vorallem für die Entwickelung nutzen.

Um diverse Ports zu simulieren, würde ich das gerne mit so einer 
universal Platine machen. Auf der sollten 8 DIP-Switches und 8 Leds 
verbaut werden.

Wenn ich den IO des Controllers auf Input stehen haben, interessiert 
mich die Ausgabe der gleichwertigen LED nicht.

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.