Hallo, ich habe mir meinen UBRR Wert per define erstellt:
1 | #define UART0_BAUD_RATE 9600
|
2 | #define UBRR0_val (F_CPU / (UART0_BAUD_RATE * 16L) - 1)
|
habe aber das problem, dass z.B. bei F_CPU = 3.68MHz durch integer abschneiden nur 22 rauskommt und nicht 23, wie es eigentlich sein sollte. Versuche wie die folgenden verliefen leider ins Leere
1 | #define UART0_BAUD_RATE 9600
|
2 | #define UBRR0_val (uint16_t) ((float) (F_CPU / (UART0_BAUD_RATE * 16L) - 1 + 0.5)))
|
3 | #define UBRR0_val (uint16_t) ((double) (F_CPU / (UART0_BAUD_RATE * 16L) - 1 + 0.5)))
|
4 | [...]
|
Hat jemand 'ne idee für mich? Besten Dank, Martin