Страница 1 из 1

Контроль за превышением температуры DS18b20

Добавлено: Чт окт 08, 2009 23:12:32
Twen
Здравствуйте, хотел бы уточнить после того как я делаю инициализацию и подаю команду (ROM) :

w1_init();
w1_write(DS18B20_ALARM_SEARCH_CMD);
temp_second=ds18b20_temperature(&rom_code[1][0]);
if(temp_second==0xFF)
{
}
else {
sprintf(lcd_buffer,"Превышение темпер. %u ",temp_second);

дальше я должен подать функциональную команду, и на нее должен ответить только датчик с установленым флагом превышения.

Но температура читается всеровно (датчик отвечает) даже если и нет превышения темпер.
Что я не так делаю?

Добавлено: Пт окт 09, 2009 07:12:29
ARV
вы путаете что-то.
после команды ALARM_SEARCH вы должны выполнить функцию поиска датчиков - и тогда "найдутся" только те, у которых есть "превышение" температуры.
команда чтения температуры работает всегда однотипно.