NitroCephal 0 24 июля, 2008 Опубликовано 24 июля, 2008 · Жалоба Привет всем. Проблемка вот довела меня сюда :). Кто-нибудь имел дело с 1-wire DS2450 вольтметром? А конкретнее с просчётом CRC16 после чтения данных с него... Сколько ищу информацию про это - нигде точно так и не увидел, как всё делать по шагам... Там после чтения данных (8 байт с 4х каналов), также читаются два байта CRC16. И Вот если взять эти полученные 8 байт данных плюс 2 байта CRC и пропустить через алгоритм crc16, должно получиться значение 0xB001, но оно никак не получается... как бы не пробовал... В общем, кто имел дело со всем этим, подскажите как нужно считать crc16, по полученным данным с датчика, или по данным + байт команды + два байта адрес... или как тут точно нужно... или если всё правильно делаю, что ещё такое может зависеть на результат... Например временные интервалы при чтении драйвером с датчика "1" или "0"... или что ещё может быть причиной того, что результат совсем ни тот :)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ALexx 0 24 июля, 2008 Опубликовано 24 июля, 2008 · Жалоба Давненько это было... Вот может исходники прояснят ситуацию GSM_MON.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NitroCephal 0 25 июля, 2008 Опубликовано 25 июля, 2008 · Жалоба исходники посмотрел... там правда нет проверки на crc16.. но уточнил моменты просто... но всё равно не могу высчитать 0xB001 :) правда вот момент такой в исходниках: если делать перед чтением данных SKIP_ROM, то crc всегда приходит 0xffff, работает только с MATCH_ROM... в общем не понимаю ничё.. :) всё вроде правильно... - делаю запрос на конвертацию (команда, маска, управляющий байт) - вычитываю CRC - жду пока не пройдёт конветрация, пока не придёт бит "1" - ресет шины - запрос на чтение (команда, два байта адрес) - вычитывание данных от начального адреса - до конечного - завершает чтение - два байта CRC беру теперь алгоритм для crc16 и даю ему {READ_MEMORY, Адрес младший, старший, данные(8 байт)} и получается совсем другой CRC ни такой какой получил... и не 0xB001 А без CRC фигово... отчего же может зависить такое... осцилограф вроде нормально показывает нули и единицы и ресет там как нужно... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NitroCephal 0 28 июля, 2008 Опубликовано 28 июля, 2008 · Жалоба можете удалять или закрывать тему... разобрался. Ждать помощи как обычно неоткуда :)) только из самого себя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться