| ??? 02/09/07 15:02 Read: times |
#132375 - C Responding to: ???'s previous message |
I can't (be bothered to) make out what your intermediate output is supposed to be doing, so your BASIC code boils down to:
NEMA$ = "$GPRMC,000004,V,3714.6284,N,12146.9181,W,0.000,0.0,290697,15.4,E*4C" PRINT " " + NEMA$ chksum = ASC(MID$(NEMA$, 2, 1)) FOR x = 3 TO LEN(NEMA$) - 3 chksum = ASC(MID$(NEMA$, x, 1)) XOR chksum NEXT x PRINT " NEMA Checksum is " + HEX$(chksum) And the 'C' equivalent is, I think:
void main( void )
{
unsigned char checksum;
int x;
char nema_string[] = "$GPRMC,000004,V,3714.6284,N,12146.9181,W,0.000,0.0,290697,15.4,E*4C";
printf( " %s\n", nema_string );
checksum = nema_string[0];
for( x = 3; x < strlen(nema_string)-3; ++x )
{
checksum ^= nema_string[x];
}
printf( " NEMA Checksum is %02X\n", checksum );
} |



