P0 = 0xFF; // Set P0 as high impedance input P1 = 0xFF; // Set P1 as input P2 = 0xFF; // Set P2 as input P3 = 0xFF; // Set P3 as input Hallo, im Datenblatt kann ich dass so rauslesen. wie muss ich sie als output initialiseieren? Alle mit 0x00?
ich wage mich dran zu erinnern das dass alles mit IN OUT im CISC gemacht wird das heißt die ganze Umschaltung wie beim Risc ist eigentlich nicht Notwendig z.B. out P0, akku dann übernimmt der Controller diese Funktion und weiß selbst das er den Port als Ausgang schalten muss mit IN ist es umgekehrt
die 8051 (zu denen dein µC gehört) haben ein anderes Konzept zu Ein/Ausgängen als die meisten anderen µC. Es gibt keine Umschaltung zwischen Eingang und Ausgang. Es funktioniert darüber, dass die Ausgangstreiber stark asymmetrisch sind. Wenn du eine 1 ausgibst, dann wird der Pin nur schwach nach oben gezogen (µA Bereich, auf Port 0 floatet er sogar völlig). Wenn du außen einen Treiber an diesen Pin anschließt, dann kann er die 1 locker übertreiben und den Pegel beliebig festlegen. Wenn kein externer Treiber angeschlossen ist, dann wird der Pin durch den schwachen Pullup auf 1 gezogen. Wenn du eine 0 ausgibst, dann wird diese stark nach außen getrieben - dann sollte möglichst kein externer Treiber versuchen, den Pin auf 1 zu ziehen, sonst fließt viel Strom. Also: - um den Pin als Ausgang zu benutzen einfach den gewünschten Wert reinschreiben (und an Port 0 zusätzlich externe Pullups vorsehen). - um den Pin als Eingang zu benutzen einfach 1 reinschreiben, und den Pegel durch den externen Treiber festlegen lassen.
Achim S. schrieb: > Es funktioniert darüber, dass die Ausgangstreiber stark asymmetrisch > sind. Oder einfach Openkollektor mit (festem) internen Pullup Widerstand. http://www.elektronik-kompendium.de/sites/slt/1206121.htm
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.