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
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.
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
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.
Klingt super, vielen Dank ! Werde ich probieren. gonzo
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.