Gast
#1490458
Hallo ich habe seit ein Paar Tagen Probleme mit dem UART des Atmega644. Bin von Atmega32 umgestiegen und seit dem geht nix mehr. Es wird noch nicht mal der Receiveinterupt ausgelöst wenn daten vom rechner gesendet werden. Stecke ich den atmega32 geht alles wieder wunderbar. Fuses sind korrekt gesetzt. CKDIV ist nicht aktiv. und externer Oscillator wird verwendet. Hab eine LED im Sekundentakt blinken lassen. Vielleicht kann mir einer von euch weiter helfen! void uart_init(){ //CPU 73728000 Baudrate 4800 uint16_t baud=95; UBRR0H = (unsigned char)(baud>>8); UBRR0L = (unsigned char)baud; /* Set frame format:asynchron 8data 1stop bit keine parität (8N1) */ UCSR0C = (1<<UCSZ01)|(1<<UCSZ00); //8 bit UCSR0C &= ~(1<<UCSZ02); UCSR0C &= ~((1<<UMSEL01)|(1<<UMSEL00)); //Asynchronous operation 01->0; 00->0 UCSR0C &= ~(1<<USBS0); //1 Stop Bit 0 } void uart_enable(){ UCSR0A = 0; /* Enable receiver and transmitter */ UCSR0B = (1<<RXEN0)|(1<<TXEN0)|(1<<RXCIE0); } //Im Hauptprogramm .... uart_init(); uart_enable(); while 1{} ISR(USART0_RX_vect) { char buffer; // Daten aus dem Puffer lesen ... buffer = UDR0; lcd_data(buffer); }