Например TDA7294

Форум РадиоКот • Просмотр темы - проблема вычисления crc8 под delphi
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт июн 19, 2025 16:36:13

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: проблема вычисления crc8 под delphi
СообщениеДобавлено: Вт ноя 23, 2010 04:21:51 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт ноя 23, 2010 04:18:10
Сообщений: 167
Откуда: Bratsk Russia UIBB
Рейтинг сообщения: 0
Здравствуйте, уважаемые.
возникла необходимость управления железом (С2000 фирмы БОЛИД). Ситуация следущая: с СОМ порта идут посылки вида :

7F 06 01 0D 00 00 BF
7F 06 01 53 00 00 30
02 06 01 01 00 00 D6
03 06 01 01 00 00 E1
04 06 01 01 00 00 64
05 06 01 01 00 00 53
....
где BF для первого случая и 30 для второго... являются CRC-8

перерыл весь инет не один из предложенных вариантов под delpi для вычисления crc не подходят.
Подскажите, люди добрые как посчитать crc :(

отталкивался от такого варианта :http://www.programmersforum.ru/showthread.php?t=110937

Код:
function GetCRC(S:String):String;
var i, j:integer;
    c:byte;
begin
   c := 0;
   for i := 1 to length(S) do begin
      c := c xor ord(S[i]);
      for j := 0 to 7 do begin
         if c and $80 = $80
         then c := (c shl 1) xor 1
         else c := (c shl 1);
      end;
   end;
   result := IntToHex(c, 4);
end;

edit1.text:=(GetCRC(chr($7F)+chr($06)+chr($01)+chr($0D)+chr($00)+chr($00)); 


в итоге получаю 7C вместо BF


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема вычисления crc8 под delphi
СообщениеДобавлено: Вт ноя 23, 2010 12:56:40 
Вымогатель припоя
Аватар пользователя

Карма: 3
Рейтинг сообщений: 4
Зарегистрирован: Сб сен 20, 2008 12:12:30
Сообщений: 525
Откуда: Minsk
Рейтинг сообщения: 0
Вот этот код считает CRC правильно:

Код:
CRC: byte;

procedure DowCRC(b:Byte);
var i:Integer;
begin
 for i:=1 to 8 do
  begin
   if Odd(b xor CRC)
    then CRC:=((CRC xor $18) shr 1) or $80
    else CRC:=CRC shr 1;
   b:=b shr 1;
  end;
end;


Еще высылаю утилиту расчета CRC, только вводить строку нужно справа налево: 00000D01067F -> BF


Вложения:
DS1990A.zip [155.67 KiB]
Скачиваний: 525
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема вычисления crc8 под delphi
СообщениеДобавлено: Вт ноя 23, 2010 18:38:48 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт ноя 23, 2010 04:18:10
Сообщений: 167
Откуда: Bratsk Russia UIBB
Рейтинг сообщения: 0
опять тупик не могу разобрвться куда вставлять в код свои значения для вычисления


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: проблема вычисления crc8 под delphi
СообщениеДобавлено: Вт ноя 23, 2010 21:37:32 
Вымогатель припоя
Аватар пользователя

Карма: 3
Рейтинг сообщений: 4
Зарегистрирован: Сб сен 20, 2008 12:12:30
Сообщений: 525
Откуда: Minsk
Рейтинг сообщения: 0
Как куда? Обнуляете переменную CRC, затем для каждого байта данных вызываете DowCRC():

СRC := 0;
DowCRC($7F);
DowCRC($06);
DowCRC($01);
DowCRC($0D);
DowCRC($00);
DowCRC($00);

Получаете CRC = $BF


Вернуться наверх
 
В продаже новые LED-драйверы XLC компании MEAN WELL с диммингом нового поколения

Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.

Подробнее>>
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y