mikrocontroller.net

Forum: Compiler & IDEs Ausgang high => Eingang mit Pullup?


Autor: Jemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
wenn man an einem Port einen Pin als Augang konfiguriert und ihn high
setzt, dannach aber den Pin als Eingang konfiguriert, ist dann der
interne Pullupwiderstand gesetzt?
Also als kurzer Code:
DDRB |= _BV(1);
PORTB |= _BV(1);
DDRB &= ~_BV(1);

Ginge das ganze auch umgekehrt? Also ein Eingang mit internem Pullup
ergibt einen Ausgang der gleich nach dem setzen als Ausgang high ist.

Wenn das so stimmt wäre ein sehr komisches Problem an dem ich zZ hänge
geklärt.

Gruß Jemand

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja.
Ja.

Autor: Wolfgang Horn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, "Jemand",

was Du beschreibst, das erinnert mich an den PCF8574.

Die AVR's sind da aufwendiger aufgebaut:
1. Das PORTBit (wie PORTB) bestimmt den Wert des auszugebenden Bits,
2. Das DataDirectionBit (wie DDRB) bestimmt: "H": Ausgang pusht and
pullt, also kräftig, also Kurzschlußgefahr in beiden Richtungen, "L":
Ausgang wie Open Collector.
3. Das DataInBit (wie PINB) liest den Zustand des Pins, egal, ob der
Pin als Ein- oder Ausgang geschaltet ist. Mit PORTB = 0xff, DDRB = 0x00
und x = PINB hast Du in X abgespeichert, was an den
Open-Collector-Ausgängen wirklich anliegt.

Ciao
Wolfgang

Autor: Hubert.G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiss nicht welchen Kontroller du verwendest, aber RTFM. Bei einem
Mega8 siehe Datenblatt Seite 51.
Switching between input with pull-up and output low generates the same
problem. The user must use either the tri-state ({DDxn, PORTxn} = 0b00)
or the output high state
({DDxn, PORTxn} = 0b11) as an intermediate step.

Autor: Jemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Damit wäre mir das erkennen der Ursache des Fehlers bestätigt.
Dankeschön.

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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
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 bestätigst du, die Nutzungsbedingungen anzuerkennen.