Forum: Mikrocontroller und Digitale Elektronik für 9.Bit Übertragung tauglich?


von Julian K. (fragenkinsey)


Lesenswert?

Frohen Tag Community,

ich bin wieder auf einen Sachverhalt gestoßen, der mir nicht ganz klar 
ist. Deshalb wollte ich hier mal nachfragen.

Reicht dieser C-Code aus, wenn man 9.Bit mit USART eines ATmega senden 
möchte?


void USART_Config(void)
{
UCSR1B = (1<< UCSZ12);
UCSR1C = (1<< UCSZ11) | (1<< UCSZ10);
}


void USART_Transmit( unsigned int data )
{
/* Wait for empty transmit buffer */
while ( !( UCSRnA & (1<<UDREn))) )
;
/* Copy 9th bit to TXB8 */
UCSRnB &= ~(1<<TXB8);
if ( data & 0x0100 )
UCSRnB |= (1<<TXB8);
/* Put data into buffer, sends the data */
UDRn = data;
}


void USART_puts (char *s);

Den vorletzten Teil, dass wird vielen von euch sicherlich bekannt sein, 
habe ich aus dem Datenblatt entnommen. Die USART_puts(char *s) ist aus 
den premium Tutorials dieses geilen Forums übernommen.

Kommt das hin, wenn man mal von der Einstellung der Baudrate absieht?

kind greetz
fragenkinsey

von Sascha W. (sascha-w)


Lesenswert?

Julian Kinsey schrieb:
> Kommt das hin, wenn man mal von der Einstellung der Baudrate absieht?
Ja, sollte passen wenn die Register dann im Code die richtigen Namen 
haben.

Sascha

von Julian K. (fragenkinsey)


Lesenswert?

danke vielmals!

greetz
fragenkinsey

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
Noch kein Account? Hier anmelden.