1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-19 06:15:16 +03:00

Added CRC_DVB_S2 calculation

This commit is contained in:
Martin Budden 2016-10-13 16:08:52 +01:00
parent d0daa186cc
commit 3a0968cd3d

View file

@ -339,7 +339,7 @@ fix12_t qConstruct(int16_t num, int16_t den) {
uint16_t crc16_ccitt(uint16_t crc, unsigned char a) uint16_t crc16_ccitt(uint16_t crc, unsigned char a)
{ {
crc ^= a << 8; crc ^= (uint16_t)a << 8;
for (int ii = 0; ii < 8; ++ii) { for (int ii = 0; ii < 8; ++ii) {
if (crc & 0x8000) { if (crc & 0x8000) {
crc = (crc << 1) ^ 0x1021; crc = (crc << 1) ^ 0x1021;
@ -350,3 +350,16 @@ uint16_t crc16_ccitt(uint16_t crc, unsigned char a)
return crc; return crc;
} }
uint8_t crc8_dvb_s2(uint8_t crc, unsigned char a)
{
crc ^= a;
for (int ii = 0; ii < 8; ++ii) {
if (crc & 0x80) {
crc = (crc << 1) ^ 0xD5;
} else {
crc = crc << 1;
}
}
return crc;
}