Atmel 9-Bit Mode

OP #7946136
Lesenswert?

Hallo

Ich will ein MDB-Protokoll mit 9-Bit realisieren. Prozessor Atmel Atmega64. Das Datenblatt habe ich gelesen. Wenn ich am TX den Oszi anschließe sehe ich es aber nicht.

Zum testen schalte ich um, angeschlossen ist mein Oszi. Baudrate stimmt, aber das Paritätsbit sehe ich nicht aan der Ausgabe auf dem Oszi. SendByteRs232_UART_MDB('A',true); delay();// 1Sekunde warten SendByteRs232_UART_MDB('A',false);

void Init_UART_MDB(void) { Uart_1_set_baudrate(BAUDRATE_UART_1); //9600 Baud

UCSR1A |= (1<<U2X1); //double_bdr UCSR1A |= (1<<MPCM1);//hierzu muss sich das Gerät im 9-Bit-Modus befinden

UCSR1C |= (1 << UCSZ12) | (1 << UCSZ11) | (1 << UCSZ10); // 9n1

//Aktivieren UCSR1B= (1<<RXEN1)|(1<<TXEN1);

//Interupt aktivieren UCSR1B |= (1<<RXCIE1); }

void SendByteRs232_UART_MDB(unsigned char c,bool Bit9) { //Warten bis Sendeschleife leer while(!((UCSR1A) & (1<<UDRE1))) {};//Transmit buffer empty

UCSR1B &= ~(1<<TXB81); if(Bit9) UCSR1B |= (1<<TXB81);

//Daten UDR1 = c; }

Weiss jemand warum?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren