??? 08/31/06 21:29 Read: times |
#123471 - ^= , Checksum, Problem |
Having a problem computing an LRC checksum.
This compiles OK, but the Checksum I end up with is FF no matter what. Am I just using this "^=" operator wrong? Checksum = 0xFF; //-Initialize checksum while (!TI0); TI0 = 0; SBUF0 =0x01;//SOF while (!TI0); TI0 = 0; SBUF0 = Len; // Length of frame incl. Len excl. Chcksm Checksum ^= Len; while (!TI0); TI0 = 0; SBUF0 = Type; Checksum ^= Type; while (!TI0); TI0 = 0; SBUF0 = Cmd; Checksum ^= Cmd; while (!TI0); TI0 = 0; SBUF0 = Node; Checksum ^= Checksum; while (!TI0); TI0 = 0; SBUF0 = CommLen; //data payload length (button,pressed state) Checksum ^= CommLen; while (!TI0); TI0 = 0; SBUF0 = CommClass; // COMMAND_CLASS_BASIC Checksum ^= CommClass; while (!TI0); TI0 = 0; SBUF0 = Comm;//Basic_Set Checksum ^= Comm; while (!TI0); TI0 = 0; SBUF0 = (LastKey); Checksum ^= LastKey; while (!TI0); TI0 = 0; SBUF0 = TXOpt; //tx option ACK needed Checksum ^= TXOpt; while (!TI0); TI0 = 0; SBUF0 = FuncID; //dummy funcID Checksum ^= FuncID; while (!TI0); TI0 = 0; SBUF0 = Checksum; Using Keil Compiler, running on a Silabs C8051F330 if that matters. Thanks |
Topic | Author | Date |
^= , Checksum, Problem | 01/01/70 00:00 | |
Have you tried a simulator? | 01/01/70 00:00 | |
well, | 01/01/70 00:00 | |
OK | 01/01/70 00:00 | |
volatile? | 01/01/70 00:00 | |
volatile | 01/01/70 00:00 | |
using ICE ? | 01/01/70 00:00 | |
update code (working) and clarification | 01/01/70 00:00 | |
Style | 01/01/70 00:00 | |
Think about your variable types | 01/01/70 00:00 | |
Thanks | 01/01/70 00:00 | |
Magic numbers | 01/01/70 00:00 | |
but don't be "oversmart" | 01/01/70 00:00 | |
example? | 01/01/70 00:00 | |
advantages | 01/01/70 00:00 | |
the most often forgotten quality guarantee![]() | 01/01/70 00:00 | |
so, use structures! | 01/01/70 00:00 | |
padding | 01/01/70 00:00 | |
| 01/01/70 00:00 | |
Actual Output | 01/01/70 00:00 | |
C99 | 01/01/70 00:00 | |
making up your own | 01/01/70 00:00 | |
Names | 01/01/70 00:00 | |
FYI - C99 Exact- & Minimum-width types | 01/01/70 00:00 |