Hallo zusammen Ich habe folgenden Code:
1 | struct ID_02 { |
2 | unsigned int Length; |
3 | unsigned char Msg_ID; |
4 | unsigned char X_Pos[4]; |
5 | unsigned char Y_Pos[4]; |
6 | unsigned char Z_Pos[4]; |
7 | unsigned char X_Speed[4]; |
8 | unsigned char Y_Speed[4]; |
9 | unsigned char Z_Speed[4]; |
10 | unsigned char Mode_1; |
11 | unsigned char HDOP; |
12 | unsigned char Mode_2; |
13 | unsigned char GPS_Week[2]; |
14 | unsigned char GPS_Tow[4]; |
15 | unsigned char SV_In_Fix; |
16 | unsigned char CH1_PRN; |
17 | unsigned char CH2_PRN; |
18 | unsigned char CH3_PRN; |
19 | unsigned char CH4_PRN; |
20 | unsigned char CH5_PRN; |
21 | unsigned char CH6_PRN; |
22 | unsigned char CH7_PRN; |
23 | unsigned char CH8_PRN; |
24 | unsigned char CH9_PRN; |
25 | unsigned char CH10_PRN; |
26 | unsigned char CH11_PRN; |
27 | unsigned char CH12_PRN; |
28 | unsigned char Checksum[2]; |
29 | };
|
30 | |
31 | |
32 | int main(void) |
33 | {
|
34 | |
35 | ....
|
36 | |
37 | struct ID_02 *GPS_Data; |
38 | GPS_Data = (struct ID_02 *)&RX_Buffer[0]; |
39 | itoa(GPS_Data->Length, Buffer, 10 ); |
40 | lcd_string(Buffer); |
41 | |
42 | ....
|
43 | |
44 | |
45 | }
|
Die Daten im Strukt sehen wie Folgt aus: 00 29 02 00 00.... So nun das problem... Mit GPS_Data length greife ich ja auf die ersten beiden Bytes zu. 0x00 0x29 Doch leider wird nicht der wert 0x0029 sondern der Wert 0x2900 auf dem Display angezeigt... Wie kann ich das umdrehen? Danke schonmal... [/c]