frederic blanc / Mbed 2 deprecated MAX31850_HelloWorld

Dependencies:   OneWireFB mbed

Committer:
fblanc
Date:
Tue May 27 15:01:13 2014 +0000
Revision:
0:55f2866e9c0c
ok

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fblanc 0:55f2866e9c0c 1 #include <inttypes.h>
fblanc 0:55f2866e9c0c 2
fblanc 0:55f2866e9c0c 3 #define CRC8INIT 0x00
fblanc 0:55f2866e9c0c 4 #define CRC8POLY 0x18 //0X18 = X^8+X^5+X^4+X^0
fblanc 0:55f2866e9c0c 5
fblanc 0:55f2866e9c0c 6 uint8_t crc8 ( uint8_t *data_in, uint16_t number_of_bytes_to_read )
fblanc 0:55f2866e9c0c 7 {
fblanc 0:55f2866e9c0c 8 uint8_t crc;
fblanc 0:55f2866e9c0c 9 uint16_t loop_count;
fblanc 0:55f2866e9c0c 10 uint8_t bit_counter;
fblanc 0:55f2866e9c0c 11 uint8_t data;
fblanc 0:55f2866e9c0c 12 uint8_t feedback_bit;
fblanc 0:55f2866e9c0c 13
fblanc 0:55f2866e9c0c 14 crc = CRC8INIT;
fblanc 0:55f2866e9c0c 15
fblanc 0:55f2866e9c0c 16 for (loop_count = 0; loop_count != number_of_bytes_to_read; loop_count++)
fblanc 0:55f2866e9c0c 17 {
fblanc 0:55f2866e9c0c 18 data = data_in[loop_count];
fblanc 0:55f2866e9c0c 19
fblanc 0:55f2866e9c0c 20 bit_counter = 8;
fblanc 0:55f2866e9c0c 21 do {
fblanc 0:55f2866e9c0c 22 feedback_bit = (crc ^ data) & 0x01;
fblanc 0:55f2866e9c0c 23
fblanc 0:55f2866e9c0c 24 if ( feedback_bit == 0x01 ) {
fblanc 0:55f2866e9c0c 25 crc = crc ^ CRC8POLY;
fblanc 0:55f2866e9c0c 26 }
fblanc 0:55f2866e9c0c 27 crc = (crc >> 1) & 0x7F;
fblanc 0:55f2866e9c0c 28 if ( feedback_bit == 0x01 ) {
fblanc 0:55f2866e9c0c 29 crc = crc | 0x80;
fblanc 0:55f2866e9c0c 30 }
fblanc 0:55f2866e9c0c 31
fblanc 0:55f2866e9c0c 32 data = data >> 1;
fblanc 0:55f2866e9c0c 33 bit_counter--;
fblanc 0:55f2866e9c0c 34
fblanc 0:55f2866e9c0c 35 } while (bit_counter > 0);
fblanc 0:55f2866e9c0c 36 }
fblanc 0:55f2866e9c0c 37
fblanc 0:55f2866e9c0c 38 return crc;
fblanc 0:55f2866e9c0c 39 }