|
unsigned char abuffer[] = {
|
|
0x00,0x03,0x00,0x07,0x14,0x07,0x4c,0x14,0x07,0x74,0x0d,0x00,0x00,0xa9,0x46,0x8d
|
|
,0xc6,0x02,0xd0,0xfe,0xa0,0x00,0xa9,0x6b,0x91,0x58,0x20,0xd9,0x07,0xb0,0xee,0x20
|
|
,0xc4,0x07,0xad,0x7a,0x08,0x0d,0x76,0x08,0xd0,0xe3,0xa5,0x80,0x8d,0xe0,0x02,0xa5
|
|
,0x81,0x8d,0xe1,0x02,0xa9,0x00,0x8d,0xe2,0x02,0x8d,0xe3,0x02,0x20,0xeb,0x07,0xb0
|
|
,0xcc,0xa0,0x00,0x91,0x80,0xa5,0x80,0xc5,0x82,0xd0,0x06,0xa5,0x81,0xc5,0x83,0xf0
|
|
,0x08,0xe6,0x80,0xd0,0x02,0xe6,0x81,0xd0,0xe3,0xad,0x76,0x08,0xd0,0xaf,0xad,0xe2
|
|
,0x02,0x8d,0x70,0x07,0x0d,0xe3,0x02,0xf0,0x0e,0xad,0xe3,0x02,0x8d,0x71,0x07,0x20
|
|
,0xff,0xff,0xad,0x7a,0x08,0xd0,0x13,0xa9,0x00,0x8d,0xe2,0x02,0x8d,0xe3,0x02,0x20
|
|
};
|
|
|
|
|
|
unsigned char buffer[] = {
|
|
0x98,0xff,0xe0,0x00
|
|
};
|
|
|
|
typedef unsigned short u16;
|
|
typedef unsigned char u08;
|
|
|
|
unsigned char get_checksum(unsigned char* buffer, u16 len)
|
|
{
|
|
u16 i;
|
|
u08 sumo,sum;
|
|
sum=sumo=0;
|
|
for(i=0;i<len;i++)
|
|
{
|
|
sum+=buffer[i];
|
|
if(sum<sumo) sum++;
|
|
sumo = sum;
|
|
}
|
|
return sum;
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
int res = get_checksum(buffer,sizeof(buffer));
|
|
printf("%x %d\n",res,sizeof(buffer));
|
|
return 0;
|
|
}
|
|
|