Hi Sagt man, wie muss ich das DDRx Register für die Pins der seriellen Schnittstelle setzen? RXD auf 0 (Eingang) und TXD auf 1 (Ausgang)? Oder beide auf Eingang? Ciao Tobias
Ist egal. Die UART übergeht die Porteinstellungen für die beiden Pins.
>Sagt man
..sollte natürlich "Sagt mal" heißen - egal...
Danke! Dann lass ich das Register einfach unangetastet.
Ciao Tobias
Die Einstellungen des DDRx werden hier ignoriert. Allerdings kann man für RXD mithilfe des PORTx-Registers den internen PullUp setzen oder löschen. Das ist hilfreich beim Anschluß von Peripherie, die keinen eigenen High-Pegel im Ruhezustand erzeugen kann (Open Collector oder Open Drain-Ausgänge).
wenn ich nicht weiß, ob mein Sensor, der an der seriellen Schnittstelle hängt, das kann oder nicht - besser den pull up aktivieren oder lassen? Ciao Tobias
Aktivieren! Die 0,2mA die der dann nach GND gezogen werden muß, sollte eigentlich jeder Sensor schaffen. Wenn´s ein OpenDrain ist, geht´s eh nicht ohne. Einfache 3-Bein-Hallsensoren zum Beispiel sind oft OpenCollector.
Hi, kommt immer auf den Controller an. Ich initialisiere die UART so, damit es geht: void InitUART( void ) { DDR4_D42 = 1; /* Enable SOT1 as output */ DDR4_D40 = 0; /* Enable SIN1 as input */ CDCR1 = 0x80; /* set UART-prescaler, DIV=8 */ SCR1 = 0x13; /* 8-data bits, 1-stop bit, no parity, Data frame, Tx/Rx enable */ SSR1 = 0x0A; /* transfer starts with LSB 0x08 -- interrupt enable*/ SMR1 = 0x19; /* select Mode0, select asynchr.transfer, set Baud rate to 9600, SOE enable */ ICR13 = 0x04; // normal interrupt level 4 } Gruß Marc989
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.