Форум программистов, компьютерный форум, киберфорум
Наши страницы

Микроконтроллеры Atmega AVR

Войти
Регистрация
Восстановить пароль
 
Mourkrym
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 45
#1

Вычисление CRC8 на бумажке - Atmega AVR микроконтроллер

06.02.2012, 21:02. Просмотров 10947. Ответов 2
Метки нет (Все метки)

Доброго времени суток, уважаемые. При изучении датчика DS18S20, в результате была написана программа чтения температуры, писал сам, разумеется пользовался примерами. Целью было досконально разобраться в алгоритме работы (приема и отправки данных к датчику и обратно). Вроде разобрался. Получаю в data (соответственно 9 ячеек памяти) ssratchpad. Все ок, все похоже на правду. Настало время посчитать CRC. Опять же, в интернетахЪ куча примеров на ASM/C и прочего. Решил для начала посчитать на листике, и впал в ступор))
Итак, пользовался информацией, изложенной тут, и статьей Ross N. Wyttyoms "Эленентарное руководство по CRC алгоритмам обнаружения ошибок".

Итак беру их пример, полином: x8 + x2 + x + 1, данные: 01010111.
Код
   0101011100000000 | 100000111
1: 000000000        | 01010110
101011100
2:  100000111
010110110
3:   000000000
101101100
4:    100000111
011010110
5:     000000000
110101100
6:      100000111
101010110
7:       100000111
010100010
8:        000000000
->         10100010
10100010 - получили тот же результат, что и в статье, все хорошо (надеюсь...)

Меняю на нужный мне полином - x8 + x5 + x4 + 1, т.е. имеем 100110001 и данные, допустим 0x01 = 00000001
Т.е. делим
Код
0000000100000000 | 100110001
Используя калькулятор CRC для 1-wire от уважаемого ORV, должен получиться ответ 0x5e, а получаю 0x31 (код вычислений не буду приводить, опять пробелы подбирать).
Проект стоит) хочу термометр доделать) Брать готовое нехочется. По идее и без проверки CRC будет работает - но эмулирую в Proteus, а в реале - и помехи и емкость линии и прочее.
Подскажите, где затык? Заранее благодарен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2012, 21:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычисление CRC8 на бумажке (Atmega AVR микроконтроллер):

CRC8 для Dallas издевательство или реальность? - Atmega AVR микроконтроллер
Кто нибуть знает самый простой принцип вычисления CRC для чудо таблетки? Литература прочитаная мной на эту тему не дала результата,...

На бумажке написать засекреченный шифр Гаусса - .NET
Нужно на бумажке написать засекреченный шифр Гаусса, подскажите как это делается.

CRC8 - Программирование
Здравствуйте, помогите пожалуйста разобраться. Есть некая последовательность символов в Hex формате (7 байт): 003E007E65CF01 Нужно по...

Проверка контрольной суммы crc8 - C#
народ, подскажите как сделать проверку контрольной суммы допустим поступают байты: 170 7 0 0 7 102 230 96 68 115 0- синхробайт ...

Вычисление периметра(вычисление расстояния между вершинами реализовать в виде функции) - Pascal ABC
даны координаты вершин многоугольника (X1,Y1), (X2,Y2),...(Xn,Yn). Напишите программу для вычисления его периметра( вычисление расстояния...

Оформить в виде функции вычисление среднеарифметического, вычисление суммы и произведения чисел - PascalABC.NET
2. Даны три числа. Оформить в виде функции вычисление среднеарифметического, вычисление суммы и произведения этих чисел.

2
Johmmy0007
0 / 0 / 0
Регистрация: 30.08.2011
Сообщений: 9,944
06.02.2012, 21:40 #2
может это поможет:
http://ru.wikipedia.org/wiki/%D0%A6%D0% ... 0%BE%D0%B4
0
Mourkrym
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 45
06.02.2012, 21:54 #3
Спасибо...
О_о, а тут как раз 0х31... евпатий коловратий, значит считаю я правильно.. Но DS18s20 считает тоже правильно, но отдает именно 0x5e. Блин, второй вечер в ф топку.... ) Знатная трава, буду дальше курить мануалы.
Код
const unsykned char Crc8Table[256] = {
0x00, 0x31, 0x62, 0x53, 0xC4, 0xF5, 0xA6, 0x97,
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2012, 21:54
Привет! Вот еще темы с ответами:

Возведение в степень по модулю, вычисление НОД, вычисление инверсии - Криптография
Доброго времени суток. Для реализации RSA нужны 3 функции " возведение в степень по модулю (а^x mod p) Вычисление наибольшего общего...

Вычисление непрерывных дробей и выражений. Вычисление полиномов и их производных. - C++
1. Чему равна знакочередующаяся сумма цифр числа n. 2. Даны натуральное число n и вещественное число х. Составить программу для...

Вычисление факториала и вычисление степени числа - Pascal ABC
Нужно проверить правильность сделанной программы если не правильно помогите исправить. Var a,a1,a2,a3,x,c,st,otvet:real; ...

Вычисление функции отключено, поскольку истекло время, выделенное на вычисление предыдущей функции - C#
Подскажите пожалуйста, загружаю файл на ftp: WebClient myWebClient = new WebClient(); Uri ftp_path = new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru