Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 26.04.2015, 16:58   #1
nexsys
Гражданин KAZUS.RU
 
Аватар для nexsys
 
Регистрация: 11.07.2010
Адрес: Не Северный Кавказ, а Юг Сибири
Сообщений: 576
Сказал спасибо: 355
Сказали Спасибо 516 раз(а) в 241 сообщении(ях)
nexsys на пути к лучшему
По умолчанию CRC8 dx1990

Всем привет.

Ребята, какой алгоритм CRC8 ?

Программка по CRC работает также как и вот этот онлайн калькулятор.
http://ghsi.de/CRC/index.php?Polynom...00+7f+b5+5c+01

Никак не могу получить правильный crc. С программированием проблемы нет. Есть ключ ( с 8-ого байта CRC) : С1 00 00 00 7F B5 5C 01
У меня программа работает как онлайн калькулятор: двигаем весь полином по одному биту влево пока самый старший не будет 1, если 1, то и его двигаем влево, затем XOR 0х31. Получается 0х23, а должен С1.
По разному в калькуляторе комбинировал ключ, С1 не получается. Ткните носом, пожалуйста - в трех соснах заблудился.

Вот одна из версий на си ( работает как онлайн калькулятор):


unsigned char r[]= {0x0,0x00,0x00,0x00,0x7f,0xb5,0x5c,0x01};

unsigned char polinom=0x31;


void sdvig() {
int i,buf;
i=1;
r[0]‹‹=1;

while(i‹{
buf=r[i];
buf&=0x80;
if(buf){r[i-1]|=0x01;}
r[i]‹‹=1;
i++;
}
}

void crc(){
int ii,buf;
ii=0;
while(ii‹63){
buf=r[0];
buf&=0x80;
if(buf){
sdvig();
r[0]^=polinom;
ii++;
printf(".%x.",r[0]);
}
if(!buf){
sdvig();
ii++;
}
printf("\n%x;",r[0]);
}

}
Реклама:
nexsys вне форума  
Непрочитано 26.04.2015, 17:07   #2
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: CRC8 dx1990

Код:
unsigned char Crc8Dallas(unsigned char len, unsigned char *pData)
{
 	unsigned char crc = 0;
 	unsigned char i;

 	while (len--)
 	{
 		crc ^= *pData++;
		for (i = 0; i ‹ 8; i++)
 		crc = crc & 0x01 ? (crc ›› 1) ^ 0x8C : crc ›› 1;
 	}
	return crc;
 }
Easyrider83 вне форума  
Непрочитано 26.04.2015, 18:54   #3
nexsys
Гражданин KAZUS.RU
 
Аватар для nexsys
 
Регистрация: 11.07.2010
Адрес: Не Северный Кавказ, а Юг Сибири
Сообщений: 576
Сказал спасибо: 355
Сказали Спасибо 516 раз(а) в 241 сообщении(ях)
nexsys на пути к лучшему
По умолчанию Re: CRC8 dx1990

Сообщение от Easyrider83 Посмотреть сообщение
Код:
unsigned char Crc8Dallas(unsigned char len, unsigned char *pData)
{
 	unsigned char crc = 0;
 	unsigned char i;

 	while (len--)
 	{
 		crc ^= *pData++;
		for (i = 0; i ‹ 8; i++)
 		crc = crc & 0x01 ? (crc ›› 1) ^ 0x8C : crc ›› 1;
 	}
	return crc;
 }
Не могу понять как выстроить байты для пересчета - в какой последовательности их обрабатывать?
nexsys вне форума  
Непрочитано 26.04.2015, 19:03   #4
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: CRC8 dx1990

В последовательной последовательности.
Easyrider83 вне форума  
Непрочитано 26.04.2015, 20:07   #5
nexsys
Гражданин KAZUS.RU
 
Аватар для nexsys
 
Регистрация: 11.07.2010
Адрес: Не Северный Кавказ, а Юг Сибири
Сообщений: 576
Сказал спасибо: 355
Сказали Спасибо 516 раз(а) в 241 сообщении(ях)
nexsys на пути к лучшему
По умолчанию Re: CRC8 dx1990

Сообщение от Easyrider83 Посмотреть сообщение
В последовательной последовательности.
Так пробую по разному: и самым младшим 0х01 вперед, и 0х00, и переворачиваю байты. Не получается.
nexsys вне форума  
Непрочитано 26.04.2015, 20:22   #6
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: CRC8 dx1990

Вы сейчас про какую последовательность? Вашу или мою?
Мою очень легко проверить. Если скормить функции, скажем, 7 случайных байт, получить CRC8, и скормить ей те же 7 байт вместе с CRC, то должен получится ноль.
Easyrider83 вне форума  
Непрочитано 26.04.2015, 20:41   #7
nexsys
Гражданин KAZUS.RU
 
Аватар для nexsys
 
Регистрация: 11.07.2010
Адрес: Не Северный Кавказ, а Юг Сибири
Сообщений: 576
Сказал спасибо: 355
Сказали Спасибо 516 раз(а) в 241 сообщении(ях)
nexsys на пути к лучшему
По умолчанию Re: CRC8 dx1990

Сообщение от Easyrider83 Посмотреть сообщение
Если скормить функции, скажем, 7 случайных байт, получить CRC8, и скормить ей те же 7 байт вместе с CRC, то должен получится ноль.
Да, так и есть. Работает хреновина.
nexsys вне форума  
Непрочитано 29.04.2015, 16:50   #8
nexsys
Гражданин KAZUS.RU
 
Аватар для nexsys
 
Регистрация: 11.07.2010
Адрес: Не Северный Кавказ, а Юг Сибири
Сообщений: 576
Сказал спасибо: 355
Сказали Спасибо 516 раз(а) в 241 сообщении(ях)
nexsys на пути к лучшему
По умолчанию Re: CRC8 dx1990

Easyrider83, спасибо за пинок в правильном направлении.
nexsys вне форума  
Непрочитано 29.04.2015, 19:53   #9
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: CRC8 dx1990

Сообщение от nexsys Посмотреть сообщение
Easyrider83, спасибо за пинок в правильном направлении.
Пинок ??!
omercury вне форума  
Непрочитано 29.04.2015, 20:00   #10
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: CRC8 dx1990

Сообщение от omercury Посмотреть сообщение
Пинок ??!
Хоть кто-то мои методы воспитания оценил
Easyrider83 вне форума  
Закрытая тема

Закладки


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CRC16 CRC8 Tcom Микроконтроллеры, АЦП, память и т.д 4 22.09.2007 15:55


Часовой пояс GMT +4, время: 22:18.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot