テストモード追加、LED有効化 left -> SerialRX, Data Recieve Complete , Serial Tx , Light Tx
Dependencies: XBee mbed NetServicesMin
frame_layer/culc_crc16.cpp@2:dec6319cf02c, 2012-04-18 (annotated)
- Committer:
- recotana
- Date:
- Wed Apr 18 07:52:46 2012 +0000
- Revision:
- 2:dec6319cf02c
- Parent:
- 0:42adca80439c
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
recotana | 0:42adca80439c | 1 | #include "mbed.h" |
recotana | 0:42adca80439c | 2 | #include "types.h" |
recotana | 0:42adca80439c | 3 | #include "config.h" |
recotana | 0:42adca80439c | 4 | #include "culc_crc16.h" |
recotana | 0:42adca80439c | 5 | |
recotana | 0:42adca80439c | 6 | unsigned int One_Byte_CRC16_Calc (uint16_t crc , uint8_t data) |
recotana | 0:42adca80439c | 7 | { |
recotana | 0:42adca80439c | 8 | // DBG("++++++++++++ CRC culc start initial CRC:%04X DATA:%04X\n",crc,data); |
recotana | 0:42adca80439c | 9 | for (int i = 0; i < 8; ++i) |
recotana | 0:42adca80439c | 10 | { |
recotana | 0:42adca80439c | 11 | if ((crc / 0x7fff) ^ (data & 0x01)) // Ex-OR input LSB first |
recotana | 0:42adca80439c | 12 | { |
recotana | 0:42adca80439c | 13 | crc = crc ^ 0x4002; // 0100 0000 0000 0010 << 1 |
recotana | 0:42adca80439c | 14 | crc = crc << 1; |
recotana | 0:42adca80439c | 15 | crc ++; |
recotana | 0:42adca80439c | 16 | } |
recotana | 0:42adca80439c | 17 | else |
recotana | 0:42adca80439c | 18 | { |
recotana | 0:42adca80439c | 19 | // crc = crc *2; // left shift |
recotana | 0:42adca80439c | 20 | crc = crc << 1; |
recotana | 0:42adca80439c | 21 | } |
recotana | 0:42adca80439c | 22 | // TEMP = TEMP/2; // right shift |
recotana | 0:42adca80439c | 23 | data = data >> 1; |
recotana | 0:42adca80439c | 24 | } |
recotana | 0:42adca80439c | 25 | // DBG("************** CRC culc result CRC:%04X\n",crc); |
recotana | 0:42adca80439c | 26 | return crc; |
recotana | 0:42adca80439c | 27 | } |