⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crc_16.c

📁 AVR atmega64串口驱动
💻 C
字号:
#define crc_16_c
#include "main.h"
//Polynomial: x^16 + x^12 + x^5 + 1 
void crc16(unsigned char r_data[],unsigned int length) 
{ 
    unsigned char cl,ch; 
        unsigned char savehi,savelo; 
        int ii,flag; 
        crc16hi=0xFF; 
        crc16lo=0xFF; 
        cl=0x1; 
        ch=0xA0; 
        for (ii=0;ii<length-2;ii++) 
        { 
            crc16lo=(crc16lo ^ r_data[ii]); 
                for (flag=0;flag<8;flag++) 
                { 
                        savehi=crc16hi; 
                        savelo=crc16lo; 
                        crc16hi=(crc16hi>>1); 
                        crc16lo=(crc16lo>>1); 
                        if ((savehi & 0x01)==0x01) 
                                crc16lo=(crc16lo | 0x80); 
                        if        ((savelo & 0x01)==0x01) 
                        { 
                                crc16hi = (crc16hi ^ ch); 
                                crc16lo = (crc16lo ^ cl); 
                        }         
                } 
        } 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -