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?
Habs gefunden. Falls jemand das Problem auch hat. UCSR1B= (1<<RXEN1)|(1<<TXEN1)|(1<<UCSZ12)|(1<<RXCIE1);
Typisch menschlich: Wenn man sich die Mühe macht, das Problem für andere ordentlich zu beschreiben, kommt man oft selbst auf die Lösung.
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.