Пишу в СV AVR, имеется проект в котором используется датчик ds1621, инициализирую его след. образом ds1621_init(0,20,22,0). В протеусе, до запуска проекта выставляю этому датчику температуру 15 градусов, запускаю проект на выполнение,
нога Tout в активном состоянии, довожу температуру до 23 градусов, Tout - переходит в отключенное состояние, начинаю понижать температуру до Tlow=20, но датчик не переключается в активное состояние. Что я делаю не так, либо это глюк?
Контроллер температуру снимает правильно, датчик переключается при верхнем пороге правильно, а нижний порог вместо заданного при инициализации - 0 градусов. Глюк?
ILYAUL
Jul 21 2010, 15:30
А Вы их прочтите после инит. Узнаете прошла инициализация или нет. Хотя там написано буквально следующее
When the DS1621’s temperature meets or exceeds the value stored in the high temperature trip register
(TH), the output becomes active and will stay active until the temperature falls below the temperature
stored in the low temperature trigger register (TL). In this way, .........
The active state for the output is programmable by the user so that an active state may either be a logic
"1" (VDD) or a logic "0" (0V).
Когда температура DS1621 достигает или превышает значение, которое хранится в (TH), выход становится активным и будет оставаться активным, пока температура не опустится ниже температуры в TL.....
И активный уровень Вы задаете сами
Что бы было понятней - он переключается только при 23
mrKirill
Jul 22 2010, 02:28
Цитата(TriS @ Jul 21 2010, 15:01)

...либо это глюк?
Цитата(TriS @ Jul 21 2010, 20:31)

Глюк?
Что отличает "Новичка" от "Профи" так это патологическое желание свои ошибки отнести к "глюкам" программы.
Внимательно читайте datasheet на датчик, даже в Proteus'е все нормально работает. Ищите у себя ошибки в программе.