Показано с 1 по 7 из 7

Тема: CRC 8

  1. #1

    По умолчанию CRC 8

    Имеется прибор ФСТ-03м (сигнализатор загазованности) посылаю запросы, получаю ответы. Все прекрасно CO, CH4, но не могу рассчитать CRC8 полином беру 16#AB, помогите сделать расчет. Попытался изменить имеющийся CRC16, пока ничего не получается.
    Вложения Вложения
    • Тип файла: zip CRC8.zip (8.0 Кб, Просмотров: 10)

  2. #2

    По умолчанию

    А разве там CRC, а не простая контрольная сумма?

  3. #3
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Строковые шестнадцатеричные проще читать функцией STRING_TO_YYY: STRING_TO_WORD('16#BC'). CRC8 для полинома AB:
    Код:
    FUNCTION CRC8 : BYTE
    VAR_INPUT
    	BUF: STRING;
    	LEN: DWORD;
    END_VAR
    VAR
    	I: DWORD := 0;
    	B: POINTER TO BYTE;
    END_VAR
    VAR CONSTANT
    	TABLE: ARRAY [0..255] OF BYTE :=
    		0, 171, 253, 86, 81, 250, 172, 7, 162, 9, 95, 244, 243, 88, 14, 165, 239, 68,
    		18, 185, 190, 21, 67, 232, 77, 230, 176, 27, 28, 183, 225, 74, 117, 222, 136,
    		35, 36, 143, 217, 114, 215, 124, 42, 129, 134, 45, 123, 208, 154, 49, 103, 204,
    		203, 96, 54, 157, 56, 147, 197, 110, 105, 194, 148, 63, 234, 65, 23, 188, 187,
    		16, 70, 237, 72, 227, 181, 30, 25, 178, 228, 79, 5, 174, 248, 83, 84, 255, 169,
    		2, 167, 12, 90, 241, 246, 93, 11, 160, 159, 52, 98, 201, 206, 101, 51, 152, 61,
    		150, 192, 107, 108, 199, 145, 58, 112, 219, 141, 38, 33, 138, 220, 119, 210, 121,
    		47, 132, 131, 40, 126, 213, 127, 212, 130, 41, 46, 133, 211, 120, 221, 118, 32,
    		139, 140, 39, 113, 218, 144, 59, 109, 198, 193, 106, 60, 151, 50, 153, 207, 100,
    		99, 200, 158, 53, 10, 161, 247, 92, 91, 240, 166, 13, 168, 3, 85, 254, 249, 82,
    		4, 175, 229, 78, 24, 179, 180, 31, 73, 226, 71, 236, 186, 17, 22, 189, 235, 64,
    		149, 62, 104, 195, 196, 111, 57, 146, 55, 156, 202, 97, 102, 205, 155, 48, 122,
    		209, 135, 44, 43, 128, 214, 125, 216, 115, 37, 142, 137, 34, 116, 223, 224, 75,
    		29, 182, 177, 26, 76, 231, 66, 233, 191, 20, 19, 184, 238, 69, 15, 164, 242, 89,
    		94, 245, 163, 8, 173, 6, 80, 251, 252, 87, 1, 170;
    END_VAR
    
    CRC8 := 0;
    FOR I := 0 TO LEN - 1 DO
    	B := ADR(BUF) + I;
    	CRC8 := TABLE[CRC8 XOR B^];
    END_FOR

  4. #4

    По умолчанию

    Что-то не выходит. Появляется ошибка при переходе в режим RUN.
    Изображения Изображения

  5. #5
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Покажите проект.

  6. #6

    По умолчанию

    Пожалуйста, ткните пальцем
    Вложения Вложения
    • Тип файла: zip CRC8.zip (3.6 Кб, Просмотров: 18)

  7. #7
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Я что-то не вижу там тестовых данных. Попробуйте вот так хотя бы:


Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •