亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? crc.c

?? C和C++在嵌入式編程里面的應用
?? C
字號:
/**********************************************************************
 *
 * Filename:    crc.c
 * 
 * Description: A table-driven implementation of CRC-CCITT checksums.
 *
 * Notes:       Some of the constants in this file are specific to 
 *              Arcom's Target188EB hardware.
 *
 *              This code can be easily modified to implement any
 *              "non-reflective" CRC algorithm.  Simply change the
 *              constants POLYNOMIAL, INITIAL_REMAINDER, FINAL_XOR,
 *              and--if an 8 or 32-bit CRC is required--the definition
 *              of type 'width'.
 *
 * 
 * Copyright (c) 1998 by Michael Barr.  This software is placed into
 * the public domain and may be used for any purpose.  However, this
 * notice must not be changed or removed and no warranty is either
 * expressed or implied by its publication or distribution.
 **********************************************************************/

#include <string.h>

#include "led.h"


/* 
 * The CRC parameters.  Currently configured for CCITT.
 * Simply modify these to switch to another CRC standard.
 */
#define POLYNOMIAL          0x1021
#define INITIAL_REMAINDER   0xFFFF
#define FINAL_XOR_VALUE     0x0000

/*
 * The width of the CRC calculation and result.
 * Modify the typedef for an 8 or 32-bit CRC standard.
 */
typedef unsigned short width;

#define WIDTH   (8 * sizeof(width))
#define TOPBIT  (1 << (WIDTH - 1))


/*
 * An array containing the pre-computed intermediate result for each
 * possible byte of input.  This is used to speed up the computation.
 */
width  crcTable[256];


/**********************************************************************
 *
 * Function:    crcInit()
 *
 * Description: Initialize the CRC lookup table.  This table is used
 *              by crcCompute() to make CRC computation faster.
 *
 * Notes:       The mod-2 binary long division is implemented here.
 *
 * Returns:     None defined.
 *
 **********************************************************************/
void
crcInit(void)
{
    width  remainder;              
    width  dividend;              
    int    bit;                  


    /*
     * Perform binary long division, a bit at a time.
     */
    for (dividend = 0; dividend < 256; dividend++)
    {
        /*
         * Initialize the remainder.
         */
        remainder = dividend << (WIDTH - 8);

        /*
         * Shift and XOR with the polynomial.
         */
        for (bit = 0; bit < 8; bit++)
        {
            /*
             * Try to divide the current data bit.
             */
            if (remainder & TOPBIT)
            {
                remainder = (remainder << 1) ^ POLYNOMIAL;
            }
            else
            {
                remainder = remainder << 1;
            }
        }

        /*
         * Save the result in the table.
         */
        crcTable[dividend] = remainder;
    }

}   /* crcInit() */


/**********************************************************************
 *
 * Function:    crcCompute()
 *
 * Description: Compute the CRC checksum of a binary message block.
 *
 * Notes:       This function expects that crcInit() has been called
 *              first to initialize the CRC lookup table.
 *
 * Returns:     The CRC of the data.
 *
 **********************************************************************/
width
crcCompute(unsigned char * message, unsigned int nBytes)
{
    unsigned int   offset;
    unsigned char  byte;
    width          remainder = INITIAL_REMAINDER;


    /*
     * Divide the message by the polynomial, a byte at time.
     */
    for (offset = 0; offset < nBytes; offset++)
    {
        byte = (remainder >> (WIDTH - 8)) ^ message[offset];
        remainder = crcTable[byte] ^ (remainder << 8);
    } 

    /*
     * The final remainder is the CRC result.
     */
    return (remainder ^ FINAL_XOR_VALUE);

}   /* crcCompute() */


/**********************************************************************
 *
 * Function:    main()
 *
 * Description: Test the CRC functions by computing the CRC-CCITT of
 *              the check string "123456789".  The expected result
 *              was provided by an independent third-party.
 *
 * Notes:
 *
 * Returns:     0 on success.
 *              Otherwise -1 indicates failure.
 *
 **********************************************************************/
main()
{
    #define CCITT_CHECK 0x29B1

    char * s = "123456789";


    /*
     * Initialize the CRC lookup table.
     */
	crcInit();

    /*
     * Compute the CRC of the check string.
     */
    if (crcCompute(s, strlen(s)) != CCITT_CHECK)
    {
        toggleLed(LED_RED);
  
        return (-1);
	}
    else
    {
        toggleLed(LED_GREEN);
 
        return (0);
    }

}   /* main() */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
性久久久久久久久| 国产黄色精品视频| 国产一区二区不卡在线| 99精品国产热久久91蜜凸| 日韩视频一区二区三区在线播放| 欧美国产一区视频在线观看| 日韩经典中文字幕一区| 色婷婷综合久久久中文字幕| 亚洲精品一区二区三区精华液| 亚洲午夜精品久久久久久久久| 国产一区二区三区在线观看精品| 欧美亚洲综合久久| 亚洲人精品午夜| 国产福利一区在线| 欧美xxxxxxxxx| 日韩国产成人精品| 欧美日韩电影在线播放| 亚洲男人天堂一区| 91丨国产丨九色丨pron| 国产精品美女久久久久久久网站| 精品一区二区三区免费观看 | 欧美一区二区三区免费在线看 | 精品国产乱码久久久久久浪潮| 亚洲自拍另类综合| 91网上在线视频| 国产精品国模大尺度视频| 成人午夜激情影院| 国产精品乱人伦中文| 国产精品一区一区| 国产欧美一区在线| 粉嫩蜜臀av国产精品网站| 久久精品一区二区三区av| 国产精品一区专区| 欧美激情综合在线| 成人深夜在线观看| 国产精品国产三级国产专播品爱网| 风间由美一区二区三区在线观看 | 国产69精品一区二区亚洲孕妇 | 亚洲欧洲三级电影| 色综合一区二区| 亚洲精品视频一区二区| 欧美性做爰猛烈叫床潮| 午夜在线电影亚洲一区| 欧美福利视频导航| 国精产品一区一区三区mba桃花| 久久精品一区二区三区av| 成人黄页在线观看| 亚洲精品中文字幕在线观看| 欧美日韩免费在线视频| 日本欧美一区二区三区| 久久久99精品免费观看| 成人国产精品免费| 一区二区三区精品| 日韩一区和二区| 国产成人av电影免费在线观看| 国产精品嫩草影院com| 欧美综合一区二区| 久久精品999| 中文字幕精品一区| 欧美日韩在线播放三区四区| 蜜臀av一区二区在线观看| 国产视频亚洲色图| 欧美丝袜第三区| 韩国视频一区二区| 一级精品视频在线观看宜春院| 91精品国产综合久久久久久久 | 在线影院国内精品| 老司机精品视频线观看86 | 日韩三级伦理片妻子的秘密按摩| 麻豆91在线播放| 亚洲特级片在线| 91精品国产综合久久久久久久| 国产成人精品午夜视频免费| 亚洲影院在线观看| 国产欧美精品在线观看| 欧美日韩国产一二三| 成人午夜免费视频| 久久国产尿小便嘘嘘尿| 亚洲精品一卡二卡| 久久这里只有精品首页| 欧美三级电影精品| 波多野结衣在线一区| 日本v片在线高清不卡在线观看| 国产精品久久久久久久岛一牛影视 | 国产精品青草久久| 日韩欧美在线观看一区二区三区| 91在线高清观看| 国产剧情av麻豆香蕉精品| 婷婷中文字幕一区三区| 成人免费一区二区三区在线观看| 日韩精品一区二区三区视频| 欧美日韩一级片网站| av成人免费在线| 国产麻豆91精品| 久久国产免费看| 亚洲高清视频的网址| 亚洲人成网站精品片在线观看| 久久精品综合网| 精品国产免费一区二区三区四区| 欧美精品在线一区二区| 欧美亚洲一区二区在线| 91亚洲精华国产精华精华液| 成人精品一区二区三区中文字幕| 国内精品久久久久影院薰衣草| 看国产成人h片视频| 婷婷中文字幕综合| 首页国产欧美久久| 婷婷六月综合网| 五月激情综合网| 午夜精品在线看| 婷婷中文字幕综合| 蜜臀精品久久久久久蜜臀 | 成人一级片网址| 成人看片黄a免费看在线| 国产成人免费9x9x人网站视频| 国产一区不卡在线| 成人激情图片网| 99re66热这里只有精品3直播 | 国产精品影视在线观看| 国产精品资源在线观看| 粉嫩av一区二区三区在线播放| 成人午夜伦理影院| 94色蜜桃网一区二区三区| 91香蕉视频黄| 欧美色网站导航| 911精品国产一区二区在线| 欧美一区欧美二区| 精品久久久久av影院| 久久综合给合久久狠狠狠97色69| 久久久久国产成人精品亚洲午夜| 国产无人区一区二区三区| 国产精品久久久久久福利一牛影视 | 美女尤物国产一区| 国产精品综合网| 91在线视频观看| 欧美区在线观看| 2020国产成人综合网| 国产精品久久久久久久久搜平片| 亚洲色图.com| 免费高清视频精品| 国产激情视频一区二区在线观看 | 欧美精品在线观看一区二区| 日韩一级片在线播放| 欧美国产日韩精品免费观看| 一区二区三区色| 青青草国产精品亚洲专区无| 国产成人av一区| 欧美日韩在线直播| 国产偷v国产偷v亚洲高清| 亚洲毛片av在线| 激情久久久久久久久久久久久久久久| jlzzjlzz亚洲日本少妇| 欧美久久久久久久久久 | 精品国产91洋老外米糕| 中文字幕字幕中文在线中不卡视频| 天天影视色香欲综合网老头| 国产成人午夜99999| 欧美日韩国产小视频在线观看| 久久亚洲影视婷婷| 亚洲成人av电影| 成人av资源在线观看| 制服丝袜日韩国产| 亚洲视频在线一区| 久久成人18免费观看| 色综合久久久久综合体桃花网| 日韩精品一区二区三区在线观看| 亚洲欧美国产毛片在线| 国产精品一区在线观看你懂的| 欧美三级中文字幕在线观看| 国产精品人妖ts系列视频| 美女视频一区二区| 欧美色视频在线观看| 欧美韩国日本一区| 精品一区二区三区影院在线午夜| 欧美日韩在线播放一区| 中文字幕在线播放不卡一区| 国内成+人亚洲+欧美+综合在线| 欧美日本在线一区| 亚洲精品国产品国语在线app| 丁香啪啪综合成人亚洲小说| 精品三级av在线| 美女视频黄 久久| 欧美精品国产精品| 亚洲国产精品人人做人人爽| 91视频国产资源| 亚洲欧美日韩中文播放| 久久91精品国产91久久小草| 欧美高清视频一二三区| 亚洲国产一区二区在线播放| 色综合久久久久综合| 亚洲人成7777| 94-欧美-setu| 亚洲黄色在线视频| 91蜜桃免费观看视频| 亚洲男同1069视频| 91麻豆123| 亚洲高清免费视频| 欧美日本韩国一区| 欧美aaa在线| 欧美成人欧美edvon|