Input und Output am gleichen Pin

Gast #4298746
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.
Gast #4298769
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.
Gast #4298822
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
#4298833
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.
Gast #4298842
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren