Gast
#341038
Hi Leute, sitze schon den ganzen Tag am Problem, dass meine USART1
Schnittstelle falsch läuft.
Wollte eigentlich mit Baud 9600 initialisieren, hab auch richtige
Werte. Da sollte die Bitbreite 104 µs sein, ist aber bei 1.8 ms. Und
eigentlich egal, was ich für a nehmen ist immer 1.8 ms. Ich vermute ich
initialisiere das ganze falsch, weiß aber nicht was genau falsch gemacht
wird :(
void uart_init(void)
{
unsigned int a= 103; // für 9600
UBRR1H = a<<8;
UBRR1L = a;
UCSR1B = (1<<RXEN1) | (1<<TXEN1);
UCSR1C = (1<<UCSZ11) | (1<<UCSZ10);
}
int usart_write(unsigned char data)
{
while (!(UCSR1A & (1<<UDRE1)));
UDR1 = data;
return 0;
}