www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wert sauber ausgeben ohne Pull Ups zu aktivieren?


Autor: gonzo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Liebe Gemeinde,

ich möchte auf einem ATTiny 2313 auf mehreren Ausgängen die Zustände 0, 
1, hochohmig erreichen - ohne die Pull-Ups zu aktivieren! (der 
Standardzustand ist hochohmig).

So richtig habe ich keine Idee...

Fall 0: hochohmig - trivial, über DDR als Eingang schalten

Fall 1: 0 ausgeben

Pin ist als Eingang konfiguriert (hochohmig)- ich schreibe eine 0 in das 
Port Register und schalte den PIN über das DDR auf Ausgang

sollte klappen, kein Problem

Fall 2: 1 ausgeben

Problem: schreibe ich die 1 ins PORT Register wenn der Eingang hochohmig 
ist, werden die Pull-Ups zugeschaltet.

Schalte ich zuerst auf Ausgang und schreibe dann die 1 in das 
PORT-Register, ziehe ich den PIN kurzzeitig auf 0 (die ja vorher im PORT 
Register stand).

Hat jemand eine Lösung ?

Vielen Dank

Autor: oszi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fall 1: Du gibst NIEDERohmig ein 0 aus...

Für was soll das gut sein? Hochohmiger als mit den Pullups wirds 
schwierig eine 1 auszugeben.

Autor: gonzo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richtig,  zwischen einschreiben der 1 (= aktivieren der Pull-UPs) und 
dem Umschalten auf Ausgang ist für eine gewisse Zeitspanne der Pin 
Eingang mit Pull-Up - also weit Weg von hochohmig.

Ich möchte ja, wie gesagt, mehrere Pins gleichzeitig schalten - 
sozusagen Wert in Register schreiben und dann auf einen Rutsch 
aktivieren (Ports auf Ausgang schalten).

Das Pull-Up Feature versaut mir dann für kurze Zeit die Hochohmigkeit 
auf den Ports, welche 1 ausgeben sollen - 0 und 1 sollen aber absolut 
gleichzeitig an den Ports erscheinen.

Gibt es weiter Ideen (kann man die Pull-Ups irgendwie "wegfusen"?)

Vielen Dank,
Gonzo

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bit7 im MCUCR Register: PUD==Pullup-Disable :

When this bit is written to one, the pull-ups in the I/O ports are 
disabled even if the DDxn and PORTxn Registers are configured to enable 
the pull-ups ({DDxn, PORTxn} = 0b01).
See “Configuring the Pin” on page 46 for more details about this 
feature.

Autor: gonzo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klingt super, vielen Dank !

Werde ich probieren.

gonzo

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.