Datum:
Das Ein- und Ausschalten wird meines Erachtens bei Mikroprozessor-Büchern, Artikeln etc. viel zu einfach gesehen, wie ich jetzt bei vielen Schaltungen schon bemerkt habe. Beim Einschalten einer LED ists ja wirklich recht einfach.
Config PORTD.1=Output PORTD.1 = 1 'wieder ein PORTD.1 = 0 'wieder aus |
Aber beim Schalten eines Senders gegen Masse wirds komplizierter, noch dazu wenn der auch manuell gegen Masse geschaltet werden kann.
CONFIG PORTD.1=Output PORTD.1 = 0 'Sender ein Waitms 500 PORTD.1= 1 'Sender aus 'wenn jetzt der Anwender seine Taste drückt, wird der arme Atmega-Port kurzgeschlossen!! |
Daher ist es in solchen Fällen notwendig, immer dir Richtung zu ändern, um so den Input als "neutralen TriState" zu nutzen. Beispiel:
CONFIG PORTD.1=Input PORTD.1=1 'Pullup 'Beim Schalten, hier ist meines Erachtens die Reihenfolge wichtig, damit beim parallelen manuellen Schalten kein Kurzschluss entsteht. PORTD.1=0 CONFIG PORTD=Output Waitms 500 CONFIG PORTD=Input PORTD.1=1 'Pullup |
Stimmen meine Überlegungen?
Datum:
Manfred S. schrieb: > Stimmen meine Überlegungen? Es ist nur in absoluten Ausnahmefällen Praxis, einen Pin sowohl für Eingabe als auch für Ausgabe zu benuzen. Die Ausnahmen sind bidirektionale Bussysteme wie I2C, bei denen die Datenrichtung und -umschaltung aber streng definiert ist und von allen Busteilnehmern eingehalten wird. Normalerweise hängt also an einem Portpin entweder ein Taster oder eine LED und nicht beides gleichzeitig. Also ein Pin ist Eingang und bleibt das auch. Einen AVR Portpin auf Masse zu ziehen ist schon doof, aber führt meistens nicht zum Tod des Ports. Einen low Ausgang auf Vcc zu ziehen, nehmen die meisten Chips viel übler. Wenn du in deinem Projekt den Sender sowohl mit MC als auch mit Taster aktivieren willst, tun das 2 Dioden als 'Wired-Or'.
Datum:
Hi
>Stimmen meine Überlegungen?
Stimmen schon. Aber der interne Pull-Up ist für viele Anwendungen schon
zu groß. Mit einem externen Pull-Up brauchst du Port=0 und dann nur
zwischen Ein- und Ausgang umschalten.
MfG Spess
Datum:
> Stimmen meine Überlegungen? Ja, du hast gerade 'Open Collector' erfunden. ;-) schau mal hier danach http://www.mikrocontroller.net/articles/Ausgangsst...
Datum:
Vielen herzlichen Dank, also ich finde, auch das muss gesagt werden, in diesem Forum hat man zu jedem Gedanken, zu jeder Unsicherheit und Frage sofort eine passende und kompetente Antwort. @spess53: Perfekt, in diesem Fall steuere ich einen FS20S4M-Sendemodul, die hat den Pullup wirklich schon on board, also brauche ich PORTD.1 nur auf 0 setzen und dann zwischen IN und OUT umschalten. @void (Gast): der Link ist interessant, steht endlich einmal systematisch drinnen, was man als Hobbybastler schon (intuitiv) gewusst hat - genau es ist ein open Collector.