ここから本文です

CRC巡回冗長検査をPICで計算させたいのですがPICでのCRCに関しての記述が見当たり...

jfy********さん

2020/4/913:32:28

CRC巡回冗長検査をPICで計算させたいのですがPICでのCRCに関しての記述が見当たりません。
どなたかお分かりになる方教えてください。
通常のC言語での回答も結構です。

使用IC dsPIC30
言語 C30
CRCタイプ(CRC-8-ATM)
生成多項式( X8 + X2 + X + 1→0x07?)
初期値(0x00)

通信データ7F011502のCRCを計算
答え0x93

閲覧数:
29
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

roc********さん

2020/4/916:31:10

サンプルソース(関数定義)はここで見つかりました
https://blog.goo.ne.jp/masaki_goo_2006/e/69f286d90e6140e6e8c021e43a...

MSB_CRC8 をATM用(0x07)に変えて試してみたら、0x93になったので関数GetCRC8はそのまま使えると思いますよ

  • 質問者

    jfy********さん

    2020/4/1009:22:11

    ありがとうございます。
    参考にしPICのC30(C言語)にて作成しビルドしましたが下記のエラーが出ました。
    UARTV1.c: In function 'main':
    UARTV1.c:163: warning: overflow in implicit constant conversion
    UARTV1.c:167: error: invalid storage class for function 'GetCRC8'
    UARTV1.c: In function 'GetCRC8':
    UARTV1.c:174: error: 'for' loop initial declaration used outside C99 mode

    ☆static unsigned char GetCRC8( const void *buff, size_t size )
    ☆for ( int i = 0 ; i < CHAR_BIT ; i++ ){
    の行です。お分かりになりますでしょうか?
    また
    data1 = 0x7F011502;
    を入れ計算させ
    WriteUART1(data2);
    while(BusyUART1());
    答えをUART送信したいのですが具体的にどのように追加したらいいでしょうか?

  • その他の返信(5件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2020/4/10 17:41:45

ありがとうございました。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる