diff --git a/main.c b/main.c index 5b13fa1..339138f 100644 --- a/main.c +++ b/main.c @@ -233,6 +233,22 @@ void send_rtty_packet() { send_cun++; } +uint16_t gps_CRC16_checksum(char *string) { + uint16_t crc = 0xffff; + char i; + while (*(string) != 0) { + crc = crc ^ (*(string++) << 8); + for (i = 0; i < 8; i++) { + if (crc & 0x8000) + crc = (uint16_t) ((crc << 1) ^ 0x1021); + else + crc <<= 1; + } + } + return crc; +} + + #ifdef DEBUG void assert_failed(uint8_t* file, uint32_t line) {