Hallo,
ich möchte in der Interruproutine ein vom Uart empfangenen String (die
Zahl 0 oder 1) in einen int umwandeln, dieser soll dann zur Ansteurung
des ADC-Kanals verwendet werden.
Hier mein Code:
1 | ISR(USART_RXC_vect)
|
2 | {
|
3 | unsigned char nextChar;
|
4 | // Daten aus dem Puffer lesen
|
5 | nextChar = UDR;
|
6 | uart_string[uart_str_count] = nextChar;
|
7 | uart_str_count++;
|
8 | //Interrupt wirs so lange gelesen, bis ein "Z" kommt, dann wird er verarbeitet
|
9 | if( nextChar =='Z')
|
10 | {
|
11 | channel= atoi(uart_string[1]); //-> hier bekomme ich immer 0 raus
|
12 | //channel= atoi("1"); //-> das funtioniert!
|
13 | send_char(uart_string[1]); //liefert 1
|
14 | sprintf (textx, "%u", channel);
|
15 | send_string(textx);// liefert 0!
|
16 |
|
17 | uart_str_count=0;
|
18 | }
|
im uart_string[1] kommt die Zahl an, wird aber nicht richtig konvertiert
- wende ich atoi falsch an?
Gruß
Pfeiffy