Peter C. Glade schrieb:
> Allerdingss würde mich interessieren wieso es im
> Interruptbetrieb nicht funktioniert wo es doch ohne wunderbar lief ?
Das Programm von da oben kann nicht korrekt funktioniert haben. Du
gibst hier
1 | UCSRB = (1<<TXEN) | (1<<RXEN) | (1<<RXCIE) | (1<<TXCIE) ;
|
den Transmit Complete Interrupt frei für den du keinen Handler hast.
Sobald das erste Zeichen raus gegangen ist, wird der Interrupt ausgelöst
und das Versäumnis, dass du keinen Handler hast mit einem µC-Reset
bestraft. Was dann die UART mit dem nächstenb halb empfangenen Zeichen
macht, steht in den Sternen. Da werden dann wohl ein paar Bits während
des Resets verloren gegangen sein. Das könnten dann genau die fehlenden
Bits sein, die dir die Übertragung versauen.
Ergo: Man gibt keinen Interrupt frei, für den man keinen Handler hat.
Niemals!