Подключаю к Pirahna Ultra датчик MLX90640. Использую Adafrut-библиотеку Работаю с примером из папки. Датчик подключен. Значения EEPROM из него выгружаются, оба кадра (Frame0 и Frame1) так же получаю. Так же считывается температура самого датчика (корпуса). Соответственно делаем вывод, что общение с датчиком корректное. Но в итоге вместо данных температур получаю значения NAN. Предположил что функция MLX90640_CalculateTo из файла MLX90640_API.cpp возвращает некорректные данные?! Но это же официальный драйвер от производителя, вряд ли он ошибочен. Значит дело в моей IDE? Пробовал 1.8.13 Пробовал 1.8.19 Пробовал 2.3.6 Разницы нет. Подскажите, пожалуйста, в чем может быть проблема. Всем привет.
Капец, кучу времени убил. Но костыль нашел: Код (C++): void ExtractKsToParameters(uint16_t *eeData, paramsMLX90640 *mlx90640) { int KsToScale; ... KsToScale = 1 << KsToScale; ... } нужно заменить на: Код (C++): void ExtractKsToParameters(uint16_t *eeData, paramsMLX90640 *mlx90640) { int32_t KsToScale; ... KsToScale = 1UL << KsToScale; ... } Всем добра
Какого Вы высокого мнения о софте от производителя! Почитайте вот историю, там ведь у "Патриотов" тоже официальная прошивка от производителя была, а вона как вышло
Ну я тут конечно не на синтаксис обращал внимание , а лепил кучу выводов в порт и понял что число KsToScale тупо не влазило в 2 байта, из за этого образовывался Ноль, дальше деление на этот Ноль и все по наклонной ))