Wert sauber ausgeben ohne Pull Ups zu aktivieren?

Gast #656844
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
Gast #656892
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
#656900
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.

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