Hi, ich hab ne kurze Frage. Ich benutze beim Atmega8 den PortB als Ausgang, PortC als ADCs und PD0 und PD1 für die UART-Kommunikation. Kann ich den PortD trotz UART als Eingang schalten, um restliche Pins zu benutzen?
>ich hab ne kurze Frage.
Ich auch: wieso probierst du es nicht einfach aus wenn du schon
das Datenblatt nicht selber lesen möchtest?
Den seriellen Eingang kannst Du sogar wie einen "normalen" I/O Pin abfragen.
@Holger Du bist doch der Datenblatt-Kenner schlechthin. Dann kannst Du bestimmt ganz locker die Fragen beantworten: Muß man die Portpins RXD und TXD extra aus dem Portbyte ausmaskieren, wenn die anderen Pins des Ports z.B. alle Eingaänge sein sollen? Muß man TXD extra als Ausgang und RXD extra als Eingang definieren? Jetzt könntest Du mal zeigen, daß Du etwas im Datenblatt gefunden hast, was andere nicht finden konnten. Danke im Voraus Buna-Pelzer
@ Buna-Pelzer: Bin zwar nicht der Holger, aber: Sind wir hier im Kindergarten? Muss hier wirklich jedem DAU extra noch mal das Datenblatt vorgekaut werden? Datenblatt ATmega8, Seite 63, "Alternate Functions of Port D": >•TXD – Port D, Bit 1 >TXD, Transmit Data (Data output pin for the USART). When the USART >Transmitter is enabled, this pin is configured as an output >regardless of the value of DDD1. >• RXD – Port D, Bit 0 >RXD, Receive Data (Data input pin for the USART). When the USART Receiver >is enabled this pin is configured as an input regardless of the value of >DDD0. When the USART forces this pin to be an input, the pull-up can >still be controlled by the PORTD0 bit.
Hallo, Ich zitiere mal aus dem Datenblatt (S.63, unter IO-Ports): • TXD – Port D, Bit 1 TXD, Transmit Data (Data output pin for the USART). When the USART Transmitter is enabled, this pin is configured as an output regardless of the value of DDD1. • RXD – Port D, Bit 0 RXD, Receive Data (Data input pin for the USART). When the USART Receiver is enabled this pin is configured as an input regardless of the value of DDD0. When the USART forces this pin to be an input, the pull-up can still be controlled by the PORTD0 bit. War doch nicht so schwer, oder? Gruß Andreas Ha, zu spät....
@Andreas(se) Eine Reaktion, wie die von "Winnie" ist doch absolut in Ordnung. Klare Frage -klare Antwort und der Frager konnte sofort weiterarbeiten. Ich danke Euch, ein Teil der Frage konnte damit beantwortet werden und ich habe diese Passage im Datenblatt tatsächlich mehrfach überlesen.. 8-/ DAS war damit nicht gemeint. Präziser gefragt: Man hat den gesamten PortD als Eingang definiert und will dessen Inhalt in ein internes Register umschaufeln. Bit1 und Bit0 von PortD sollen als RxD und Txd fungieren. Muß man nun Bit0 und Bit1 ausmaskieren, bevor man den Inhalt von PortD (die verbleibenden 6 Bits) in ein Register zur Weiterverarbeitung schiebt? Richtig, ihr seid beide nicht Holger -nur gerade von dem hätte ich eine Antwort erwartet. Warum? Weil der nur die große Schnauze auftut und nicht einer seiner Beiträge irgendeine Hilfe für den Fragenden brachte! Buna-Pelzer
Buna-Pelzer schrieb: > Muß man nun Bit0 und Bit1 ausmaskieren, bevor man den Inhalt von PortD > (die verbleibenden 6 Bits) in ein Register zur Weiterverarbeitung > schiebt? Warum sollte man diese Bits nicht ausmaskieren? Welche Informationen erwartest Du von diesen beiden Bits. Interessant zur Auswertung können ja wohl nur die anderen 6 Bits außer Rx und Tx sein, die extern wie auch immer beschaltet sind. Somit würde ich diese Bits als undefiniert betrachten. Gruß Andreas
Danke Andreas, das macht die Sache klarer. Eine Frage trotzdem noch: Wenn ich PortD komplett als Ausgang definiere und jage dort dann hex FF raus, dann mache ich mir doch den Sende-Datenstrom kaputt, weil ja mittendrin unmotiviert eine 1 eingefügt wird und auch bei Rxd wird mittendrin eine 1 eingefügt. Ist das so? Wenn das so ist, dann müsste man ja (symbolisch) schreiben: PortD = Ausgabebyte AND 3 Gruß Buna-Pelzer
Hi >weil ja mittendrin unmotiviert eine 1 eingefügt wird und auch bei Rxd >wird mittendrin eine 1 eingefügt. Ist das so? Nein. Datenblatt: The Receiver will override normal port operation for the RxD pin when enabled. The Transmitter will override normal port operation for the TxD pin when enabled. MfG Spess
Danke Spess! Jetzt weiß ich Bescheid und kann nun manche Sachen aus meinem Programm werfen, die ich dadurch gar nicht brauche. Ich sitze hier mit dem ausgedruckten Datenblatt und finde die angegebnen Textstellen immer erst dann, wenn andere sie schon gefunden haben... @All Es ist nicht fair, immer nur zu brüllen: "Lies das Datenblatt!" Das ist so umfangreich und die Informationen zu einem Thema sind darin so weit gestreut, daß man in der "Eingewöhnungsphase" nicht alles, was dazugehört findet. Denkt mal daran, daß bei Euch auch kein Atmega8 in der Wiege lag, der hätte Euch das Kreuz zerstochen :-) Gruß Buna-Pelzer
Buna-Pelzer schrieb: > @All > Es ist nicht fair, immer nur zu brüllen: "Lies das Datenblatt!" > Das ist so umfangreich und die Informationen zu einem Thema sind darin > so weit gestreut, daß man in der "Eingewöhnungsphase" nicht alles, was > dazugehört findet. Ich denke mal das liegt daran, daß man machmal den Eindruck hat, daß das Forum dazu dient die Faulheit mancher zu unterstützen. Da reagieren viele Leute hier sehr allergisch. Du wirst diese Antwort vermutlich nicht bekommen, wenn Du zeigst, daß Du Dich mit dem Datenblatt bereits beschäftigt hast. Gruß Andreas
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.