Hallo zusammen,
ich habe ein kleines Problem mit der Funktion utoa.
Ziel ist es einen Integer aus dem ADC in einen String für UART-Ausgabe
zu schreiben.
Ich habe schon einiges probiert um den Fehler zu finden, aber bin
mittlerweile völlig Ratlos.
Der Code sieht wie folgt aus:
1 | int main(void)
|
2 | {
|
3 |
|
4 | uint16_t adc_wert=50;
|
5 | char spannung[20];
|
6 | uint16_t acd_flag=1;
|
7 | init_uart();
|
8 |
|
9 | sei();
|
10 |
|
11 | while(1)
|
12 | {
|
13 |
|
14 | if (adc_wert!=acd_flag)
|
15 | {utoa(adc_wert, spannung, 10);
|
16 | strcpy(spannung, "\n\r");
|
17 | //put_string(spannung);
|
18 | put_string("test\n\r");
|
19 | adc_wert=acd_flag;
|
20 | }
|
21 |
|
22 |
|
23 | }
|
So wie gezeigt gibt Uart korrekt einmal "test" aus.
Wenn ich die Zeile mit dem erzeugten String auskommentiere liefert die
Ausgabe ausschließlich die Zeichenfolge 0A 0D 0A 0D und auch das Wort
"test" wird nicht mehr ausgegeben.
Sieht jemand den Fehler?
Vielen Dank :-)