StanislavLakhtin / stm32-DS18B20

libopencm3 DS18B20 stm32f103c8t6
28 stars 6 forks source link

Проверка CRC в функии чтения температуры не проходит #1

Open PeterBorisenko opened 5 years ago

PeterBorisenko commented 5 years ago

Нет проверки CRC в функции чтения температуры. Добавил проверку - CRC никогда не сходится. Отличается на пару бит.

StanislavLakhtin commented 5 years ago

Да. В алгоритме есть ошибка. Мне она известна. Алгоритм был мной некорректно немного упрощён и в ряде случаев (например, когда некоторое сочетание ID датчиков) не сходится. Я постараюсь внести исправления. Поскольку занимаюсь сейчас немного другой деятельностью, мне трудно переключиться быстро.

PeterBorisenko commented 5 years ago

Странно, а почему сходится при проверке ROM? Или вы имеете ввиду алгоритм в целом, а не owCRC8?

StanislavLakhtin commented 5 years ago

Там ошибка только в Search методе. Я сам разрабатывал алгоритм и только потом, уже после внедрения, понял, что в ряде случаев у меня появляются потерянные ветки. Получается, некорректно его в ряде случаев исполняю. Проблемы есть именно с операцией сканирования. Я постараюсь исправить всё. Проект хоть и делался давно, его можно причесать и он вполне годный. Элементная база для проверки у меня есть. libopencm3 очень хороший подход, делал я проект для автоматизации адского количества сенсоров для пасеки. Следует просто найти время и исправить, что должно.

PeterBorisenko commented 5 years ago

Да, у меня с ходу все заработало, но потом заметил ошибки в данных и решил что нужна проверка контрольной суммы. Попробую поправить со своей стороны тоже.