Programmierung: Korrektur der UART/USART Baudratenformel in der Bibliothek
Teilen
Der Abschnitt der UART/USART-Initialisierung zur Bestimmung der Baudrate enthielt einen Fehler. Der Fehler bestand darin, dass zunächst nicht das Produkt aus 16 und Baud enthalten war, so dass die F_CPU nicht durch 16 geteilt wird, bevor die 16 mit dem Baud multipliziert wird. Das zweite Problem war, dass der Buchstabe 'L' nicht nach der 16 hinzugefügt wurde. Das L in der Programmiersprache C teilt dem Compiler mit, dass die 16 eine Long-Integer ist.
uint16_t UBBRValue = lrint(( F_CPU / (16L * baud) ) - 1);