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.