Gast
#3115316
Servus, ich möchte mittels uart_transmit(data) eine LED durch das drücken der taste 'a' ein/ausschalten. Leider finde ich meinen fehler bei folgenden Code nicht. Einfachheitshalber habe ich zunächst nur vor die LED durch das Drücken der Taste a einzuschalten: void uart_init(uint32_t baudrate){ uint16_t ubrr = (F_CPU/8/baudrate)-1; //Set baud rate UBRR0H = (uint8_t)(ubrr>>8); // get higher 8 bits UBRR0L = (uint8_t)(ubrr&0xff); // get lower 8 bits UCSR0A |= (1<<U2X0); UCSR0B = ( 1<<TXEN0 | 1<<RXEN0 ); // select character size, stop and parity bits: 8N1 UCSR0C = (1<<UCSZ01 | 1<<UCSZ00); DDRB = 0x10; PORTB = 0x10; } void uart_transmit (uint8_t data){ while((UCSR0A & (1<< UDRE0)) == 0); if(data == 'a'){ PORTB = 0x20; } UDR0 = data; } LG michi