Open FFBoard
Open source force feedback firmware
CRC.cpp
Go to the documentation of this file.
1/*
2 * CRC.cpp
3 *
4 * Created on: Jan 10, 2023
5 * Author: Yannick
6 */
7
8#include "CRC.h"
9
13uint8_t calculateCrc8(std::array<uint8_t,256> &crctable,uint8_t* buf,uint16_t len,uint8_t crc){
14 for(uint16_t i = 0;i<len;i++){
15 crc = crctable[buf[i] ^ crc];
16 }
17 return crc;
18}
19
23uint16_t calculateCrc16_8(std::array<uint16_t,256> &crctable,uint8_t* buf,uint16_t len,uint16_t crc){
24 for(uint16_t i = 0;i<len;i++){
25 crc = crctable[(((crc >> 8) ^ buf[i]) & 0xFF)] ^ (crc << 8);
26 }
27 return crc;
28}
29
33uint16_t calculateCrc16_8_rev(std::array<uint16_t,256> &crctable,uint8_t* buf,uint16_t len,uint16_t crc){
34 for(uint16_t i = 0;i<len;i++){
35 crc = __REVSH(crctable[(((crc >> 8) ^ buf[i]) & 0xFF)]) ^ (crc << 8);
36 }
37 return crc;
38}
uint8_t calculateCrc8(std::array< uint8_t, 256 > &crctable, uint8_t *buf, uint16_t len, uint8_t crc)
Definition: CRC.cpp:13
uint16_t calculateCrc16_8_rev(std::array< uint16_t, 256 > &crctable, uint8_t *buf, uint16_t len, uint16_t crc)
Definition: CRC.cpp:33
uint16_t calculateCrc16_8(std::array< uint16_t, 256 > &crctable, uint8_t *buf, uint16_t len, uint16_t crc)
Definition: CRC.cpp:23
uint8_t crc