X-Git-Url: http://git.droids-corp.org/?p=aversive.git;a=blobdiff_plain;f=projects%2Fmicrob2010%2Ftests%2Fbeacon_tsop%2Fmain.c;h=edc444b34ccbf2375f5dcbf1b076c7bf78fd1589;hp=939719fbd8c3abe0186d4e438c59e4c2ca3e840e;hb=aa0ebd8b43a0e48d791864ae3268e78d980a70e9;hpb=d992c7dd579170e226cfceabb652cdda6edb97b4 diff --git a/projects/microb2010/tests/beacon_tsop/main.c b/projects/microb2010/tests/beacon_tsop/main.c index 939719f..edc444b 100755 --- a/projects/microb2010/tests/beacon_tsop/main.c +++ b/projects/microb2010/tests/beacon_tsop/main.c @@ -146,6 +146,31 @@ void debug_tsop(void) #endif } +#if 0 +/* val is 16 bits, including 4 bits-cksum in MSB, return 0xFFFF is + * cksum is wrong, or the 12 bits value on success. */ +static uint16_t verify_cksum(uint16_t val) +{ + uint16_t x, cksum; + + x = (val & 0xfff); + /* add the four 4-bits blocks of val together */ + cksum = val & 0xf; + val = val >> 4; + cksum += val & 0xf; + cksum = (cksum & 0xf) + ((cksum & 0xf0) >> 4); + val = val >> 4; + cksum += val & 0xf; + cksum = (cksum & 0xf) + ((cksum & 0xf0) >> 4); + val = val >> 4; + cksum += val & 0xf; + cksum = (cksum & 0xf) + ((cksum & 0xf0) >> 4); + if (cksum == 0xf) + return x; + return 0xffff; /* wrong cksum */ +} +#endif + /* decode frame */ SIGNAL(SIG_TSOP) { static uint8_t led_cpt = 0;