www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega Input und Output


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Manfred S. (Firma: Manfred) (xfred343)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
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?

Autor: Matthias Sch. (Firma: Matzetronics) (mschoeldgen)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
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'.

Autor: spess53 (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
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

Autor: void (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
> Stimmen meine Überlegungen?

Ja, du hast gerade 'Open Collector' erfunden. ;-)

schau mal hier danach
http://www.mikrocontroller.net/articles/Ausgangsst...

Autor: Manfred S. (Firma: Manfred) (xfred343)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net