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; }
UCSR1C = (1<<UCSZ11) | (1<<UCSZ10); Da fehlt noch (1<<URSEL). Seite 171 im Datenblatt.
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.