Prusa MINI Firmware overview
crc16.h File Reference
#include <stdint.h>

Go to the source code of this file.

Functions

void crc16 (uint16_t *crc, const void *const data, uint16_t cnt)
 

Function Documentation

◆ crc16()

void crc16 ( uint16_t *  crc,
const void *const  data,
uint16_t  cnt 
)

Marlin 3D Printer Firmware Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]

Based on Sprinter and grbl. Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

25  {
26  uint8_t *ptr = (uint8_t *)data;
27  while (cnt--) {
28  *crc = (uint16_t)(*crc ^ (uint16_t)(((uint16_t)*ptr++) << 8));
29  for (uint8_t i = 0; i < 8; i++)
30  *crc = (uint16_t)((*crc & 0x8000) ? ((uint16_t)(*crc << 1) ^ 0x1021) : (*crc << 1));
31  }
32 }
crc
png_uint_32 crc
Definition: png.c:2247
data
uint8_t data[8]
Definition: masstorage.h:49
i
uint8_t i
Definition: screen_test_graph.c:72
uint8_t
const uint8_t[]
Definition: 404_html.c:3