Hallo. Ich habe mir eine kleine Schaltung zum Experimentieren mit dem µC At90S2313 aufgebaut. PortD verwende ich als Eingang. Ich habe da einfach Stiftleisten auf die Platine gelötet, auf die man dann Jumper setzen kann um den Pin auf HIGH zu setzen. Außerdem habe ich 22k-Pulldown-Widerstände (gegen Masse) geschaltet. PortB ist der Ausgang. Die 8 Pins steuern über 330 Ohm-Widerstände jeweils eine LED an, wobei die Anode am µC liegt und Kathode an Masse. Nun mein Problem: Ich habe den µC so programmiert, dass er die Eingänge einliest und dann an die Ausgänge ausgibt, also PortB=PinD Es funktioniert auch fast alles, nur dass Eingang PD1 komischerweise dauernd auf High ist und somit auch ständig die LED an PB1 leuchtet! Woran kann das liegen? Wenn ich den Eingang PD1 direkt auf Masse ziehe, dann geht auch die LED PD1 aus (und bleibt dann auch meistens aus). Sind meine Pull-Down-Widerstände zu groß gewählt?
kommt drauf an, ob du die internen pullups aktiviert hast. Wenn ja (PortD=0xff) sind 22k nicht besonders glücklich gewählt. Machs doch einfach andersrum: aktiviere die internen pullups, Schalter gegen Masse.
Hi. Schalter gegen Masse ist für meinen Zweck nicht praktisch. Später sollen die Eingänge nämlich an den Parallelport angeschlossen werden und es soll dann auch im µC eine '1' ankommen, wenn der Prallelport eine '1' sendet. Übergangsweise nehme ich jetzt einfach die Jumper. Hab das Problem aber gerade lösen können. In der Schleife habe ich einfach den problematischen Pin auf 0 setzen lassen. Danach wird dann der Eingang gelesen und an den Ausgang geschrieben. So funktioniert es problemlos. PS: Muss PortD=0xFF oder DDRD=0xFF heißen? Mit welchem Wert kann ich die Pull-Ups deaktivieren?
Aus irgendeinem Grund funktioniert es plötzlich, auch mit dem alten Code. Trotzdem vielen Dank für die schnelle Hilfe
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.