Свежие обсуждения
Электроника в быту

Датчик температуры DS1821+

Считывание значения с 8-битного регистра температуры происходит нормально. При попытке получить более точное значение происходит следующее: считывание с 9-битного регистра (команда A0h) приосходит нормально, затем после команды 41h (загрузка аккумуляттора в счетчик) 8-битный регистр замораживается на значении 125, хотя значение статусного регистра не меняется. Испытал несколько экземпляров - результат один. В чем ошибка, подскажите?

 

Пример прилагается - рабочий кусок программы - работа с датчиком температуры

175543.asm

 

Попробовал выдерживать паузу до завершения температурной конверсии (можно путем опроса первого бита в статусном регистре), прежде чем подавать дальнейшие команды - все нормально заработало: разрешающая способность в среднем 150 единиц на градус в диапазоне 25-33 градуса.

 

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

 

паузу выдерживать обязательно. лучше nop