Gast
#1956543
Guten Morgen liebe Gemeinde, ich bin neu hier im Forum und hoffe mir kann hier geholfen werden. Ich versuche eine einfache USB Verbindung zwischen PC und Mikrocontroller herzustellen. Ich verwende dafür ein MEGA128-USB-Board mit CP2102 Silab USB-USART-Bridge. Meine Initialisierung: #define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1) void InitUART1(void) { UBRR1H = UBRR_VAL >> 8; UBRR1L = UBRR_VAL & 0xFF; // enable receiver and trasmitter UCSR1B = (1<<RXEN)|(1<<TXEN); // set frame format: 1stop bit, 8data UCSR1C = (0<<USBS)|(2<<UCSZ0); } Die berechnete Baudrate habe ich über ein Display ausgeben lassen, die stimmt. Wenn ich nun ein Zeichen sende empfängt das Terminal am PC leider ein anderes. Ich sende mit dieser Funktion: void TestSend(void) { while (!(UCSR1A & (1<<UDRE))) // warten bis Senden moeglich ; UDR1 = 'T'; } Nun hab ich in dem Forum gelesen, dass beim ATMega128 der ATmega103 Compatibility Mode standardmäßig aktiviert ist. Ich hab versucht den zu deaktivieren, leider zeigt mir aber AVR Studio nur die Fuses von einem ATMega32 an. Vielleicht hat jemand schon meinen Fehler gefunden und kann mir helfen. Falls ich irgendwelche wichtigen Infos vergessen habe bitte melden großes Dankeschön schonmal
