hallo,
habe ein problem vom konvertieren von chars in integer.
versuche gerade über uart einen text zu senden.
darin enthalten (erste 3 zeichen, "command") ist das kommando was zu tun
ist.
im letzten teil (4-10tes zeichen, "datas1", 000020 = 20) wird ein
integer übertragen.
nur leider kriege ich den char nicht zu einem integer konvertiert.
kann mir da einer helfen?
1 | void Set_XYZ()
|
2 | {
|
3 | unsigned char command[4] = "???";
|
4 | unsigned char data1[6] = "000000";
|
5 | unsigned char data2[6] = "000000";
|
6 | unsigned char data3[6] = "000000";
|
7 | unsigned int data1int = 0;
|
8 | unsigned int data2int = 0;
|
9 | unsigned int data3int = 0;
|
10 |
|
11 | if (strlen(uart_string) >= 3)
|
12 | {
|
13 | for(unsigned int i = 0; i < 3;i++) //command lesen
|
14 | {
|
15 | command[i] = uart_string[i];
|
16 | };
|
17 | if (strlen(uart_string) >= 9)
|
18 | {
|
19 | for(unsigned int i = 0; i < 6;i++) //data 1 lesen
|
20 | {
|
21 | data1[i] = uart_string[i+3];
|
22 | };
|
23 | if (strlen(uart_string) >= 15)
|
24 | {
|
25 | for(unsigned int i = 0; i < 6;i++) //data 2 lesen
|
26 | {
|
27 | data2[i] = uart_string[i+9];
|
28 | };
|
29 | if (strlen(uart_string) >= 21)
|
30 | {
|
31 | for(unsigned int i = 0; i < 6;i++) //data 3 lesen
|
32 | {
|
33 | data3[i] = uart_string[i+15];
|
34 | };
|
35 | data3[6] = '\0';
|
36 | data3int = (int)data3;
|
37 | //uart_puts (data3);
|
38 | }; //comannd + datas1 + datas2 + datas3
|
39 | data2[6] = '\0';
|
40 | data2int = (int)data2;
|
41 | //uart_puts (data2);
|
42 | }; //comannd + datas1 + datas2
|
43 | data1[6] = '\0';
|
44 | data1int = (int)data1;
|
45 | uart_puts (data1);
|
46 | }; //comannd + datas1
|
47 | command[3] = '\0';
|
48 | //uart_puts (command);
|
49 | }; //comannd;
|
50 |
|
51 | // tmpint = itoa(uart_string[3]);
|
52 | if( strcmp( command, "led" ) == 0 )
|
53 | // if((uart_string[0] == 'l') && (uart_string[1] == 'e') && (uart_string[2] == 'd'))
|
54 | {
|
55 | if(data1int == 0)
|
56 | {
|
57 | PORTD &= ~(1<<PD6); //ausschalten
|
58 | uart_puts ("ausschalten");
|
59 | }
|
60 | else
|
61 | {
|
62 | PORTD |= (1<<PD6); //einschalten
|
63 | uart_puts ("einschalten");
|
64 | }
|
65 | //PORTD ^= (1<<PD6); toggeln
|
66 | }
|
67 | uart_puts (uart_string);
|
68 | }
|
gruß karsten