Показано с 1 по 10 из 17

Тема: CRC-16/ARC помогите перевести с С++ на мэк

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь Аватар для Gvenihvivar
    Регистрация
    09.11.2012
    Адрес
    харьков
    Сообщений
    66

    По умолчанию CRC-16/ARC помогите перевести с С++ на мэк

    Добрый день.
    Помогите перевести код CRC-16/ARC с С++
    Код:
    #include <stdio.h> 
    #include <stddef.h> 
    #include <stdint.h> 
    
    static uint16_t CRC16_ARC(uint8_t *data, size_t len) { 
      uint16_t crc = 0x0000; 
      size_t j; 
      int i; 
      // Note: 0xA001 is the reflection of 0x8005 
      for (j=len; j>0; j--) { 
        crc ^= *data++; 
        for (i=0; i<8; i++) { 
          if (crc & 1) crc = (crc >> 1) ^ 0xA001; 
          else crc >>= 1; 
        } 
      } 
      return (crc); 
    }
    У меня получилось следующее
    Код:
    var
    	data : POINTER TO BYTE;
    	SIZE : INT;
    	j: INT;
    	i: INT;
    	crc : WORD:=16#0000;
            arr: array [0..3] of  byte:= [10,11,12,13];
    end_var
    
    data :=ADR(arr[0]);
    size  :=4;
    FOR j:=size TO 0 BY -1 DO
    	crc := data^;
    	FOR i:=0 TO 8 DO
    		IF WORD_TO_BOOL(crc AND 16#0001) THEN crc:= ( SHR(crc, 1) OR 16#A001); 
    		ELSE crc := SHR(crc, 1); END_IF
    	END_FOR
    	data:=data + SIZEOF(data^);
    END_FOR
    crc16ROCplus_1 := crc;
    должно получиться A819, но не получается. Помогите найти ошибку.
    Последний раз редактировалось Gvenihvivar; 02.07.2014 в 11:54.

Похожие темы

  1. Какой ПИД – регулятор выбрать на котёл ДЕ -16
    от Sasha55 в разделе Подбор Оборудования
    Ответов: 20
    Последнее сообщение: 02.04.2019, 16:02
  2. МЭК 60870-5-104
    от monteg в разделе ПЛК3хх
    Ответов: 23
    Последнее сообщение: 01.04.2016, 13:23
  3. Переход на МЭК 61850
    от Sergeus в разделе Другие SCADA системы
    Ответов: 1
    Последнее сообщение: 10.12.2013, 19:35
  4. CRC 8
    от kanadchikov в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 28.09.2012, 11:15
  5. мэк 61131-3
    от Евгений Б. в разделе Сервисное ПО
    Ответов: 1
    Последнее сообщение: 09.12.2007, 17:45

Метки этой темы

Ваши права

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