Hallo,
ich möchte von jedem Daten der von der GPS-Maus kommt die Checksumme
berechnen.
1 | int CheckChecksum(char* packet)
|
2 | {
|
3 | unsigned char Character,x;
|
4 | unsigned int Checksum = 0;
|
5 | int i,length;
|
6 |
|
7 | length = strlen(packet);
|
8 |
|
9 | for(i=0;i<length;i++)
|
10 | {
|
11 | Character = packet[i];
|
12 |
|
13 | if (Character == '$')
|
14 | {
|
15 | // Ignore the dollar sign
|
16 | }
|
17 | else if (Character == '*')
|
18 | {
|
19 | // Stop processing before the asterisk
|
20 | break;
|
21 | }
|
22 | else
|
23 | {
|
24 | if(Character != '$')
|
25 | Checksum ^= Character;
|
26 | }
|
27 | }
|
28 | return 0;
|
29 | }
|
Datensatz:
$GPRMC,081638,V,4856.4987,N,00822.1526,E,,,250707,000.6,E*61
Checksumme: 61
Mit meiner Funktion erhalte ich da 97. Wo könnte da der Fehler liegen?