Hi all,
I am programming an ATMEGA2560 and am trying to send strings via UART0.
Sending single characters works,
1 | void serial_writeChar0(unsigned char c)
|
2 | {
|
3 | while ( !(UCSR0A & (1 << UDRE0)) );
|
4 | UDR0 = c;
|
5 | }
|
6 |
|
7 | but sending a complete string
|
8 |
|
9 | void serial_writeString0(const char *s)
|
10 | {
|
11 | while (*s)
|
12 | {
|
13 | serial_writeChar0(*s);
|
14 | s++;
|
15 | }
|
16 | }
|
17 |
|
18 | while (1)
|
19 | {
|
20 | serial_writeChar0('A');
|
21 | serial_writeChar0('B');
|
22 | serial_writeChar0('C');
|
23 | serial_writeChar0('\n');
|
24 |
|
25 | serial_writeString0("Some String");
|
26 | delay_ms(500);
|
27 | }
|
produces dirt on the terminal.
1 | SÿÿÿÿÿÿÿÿÿÿÿABC
|
2 | SÿÿÿÿÿÿÿÿÿÿÿABC
|
3 | SÿÿÿÿÿÿÿÿÿÿÿABC
|
4 | SÿÿÿÿÿÿÿÿÿÿÿABC
|
5 | SÿÿÿÿÿÿÿÿÿÿÿABC
|
6 | SÿÿÿÿÿÿÿÿÿÿÿABC
|
What the heck could be the problem?
Thanks a lot in advance!!
Andreas