Hallo, stehe auf dem Schlauch bzgl. Ausgabe einer uint32_t auf der seriellen Schnittstelle:
1 | uint32_t Ergebnis; |
2 | uint16_t c_2 = 8910; |
3 | char s[20]; |
4 | |
5 | int main (void) |
6 | {
|
7 | Ergebnis = (c_2 << 10); |
8 | uart_puts(ultoa (Ergebnis , s, 10)); |
9 | }
|
10 | |
11 | void uart_puts (char *s) |
12 | {
|
13 | while (*s) |
14 | { /* so lange *s != '\0' also ungleich dem "String-Endezeichen(Terminator)" */ |
15 | uart_putc(*s); |
16 | s++; |
17 | }
|
18 | }
|
19 | |
20 | int uart_putc(unsigned char c) |
21 | {
|
22 | while (!(UCSR0A & (1<<UDRE0)) ) // warten bis Senden moeglich |
23 | {
|
24 | ;
|
25 | }
|
26 | UDR0 = c; // sende Zeichen |
27 | return 0; |
28 | }
|
Es wird 14337 ausgegeben; das muß irgendwas mit der Umwandlung einer uint32_t zu tun haben, wenn ich nur c_2 ausgeben lasse, tut es. Sieht jemand den Fehler? Danke für hilfreiche Tips!