Заголовок сообщения: DS18b20 Как проще всего детектить наличие или отсутствие
Добавлено: Вс июл 02, 2023 17:07:33
Открыл глаза
Зарегистрирован: Чт сен 03, 2009 16:42:39 Сообщений: 64
Рейтинг сообщения:0
Забираю температуру так: (без библиотек, регистрации и смс ) Как отдетектить наличие или отсутствие датчика на шине? При отсутствии датчика температура 255. Всё бы ничего, но это число соответствует -1 градусу.
Код:
#define F_CPU 4800000L //подключаем заголовочные файлы #include<avr/io.h> #include<avr/signal.h> #include<util/delay.h> #include<stdio.h> #include<stdlib.h> #include<stdint.h> //задаёмся прототипом функции, чтения данных датчика ds18b20 voidtemperature(void); int8_tvolatile termo; //переменная для данных температуры
Заголовок сообщения: Re: DS18b20 Как проще всего детектить наличие или отсутствие
Добавлено: Пн июл 03, 2023 09:16:15
Открыл глаза
Зарегистрирован: Чт сен 03, 2009 16:42:39 Сообщений: 64
Рейтинг сообщения:0
Сделал проверку контрольной суммы. Убил двх зайцев. Температура точно будет без искажений и присутствие датчика покажет при CRC==0 Всем спасибо. Вопрос закрыт.
Ну есть же импульс присутствия/подтверждение? Или нефиг?
Да. экспериментировал с ним. После сигнала 480мкс датчик садит шину на землю. Но есть одно но. Высокий уровень между этими событиями отсутствует или почти отсутствует. И если "умный человек" просто закоротил шину на землю, по логике программы получается что датчик есть. Вообщем сделал контроль CRC. Вопрос закрыт.
WorkPage, не ври про отсутствие высокого уровня. импульс присутствия появляется не сразу, а через 15 мкс, не ранее. поэтому нужно после 480 мкс сначала проверить появление наличие единицы, тогда кз нет. а уже потом проверять на ноль импульс присутствия.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Сделал проверку контрольной суммы. Убил двх зайцев. Температура точно будет без искажений и присутствие датчика покажет при CRC==0 Всем спасибо. Вопрос закрыт.
Не закрыт.)) по одному только CRC==0 нельзя сказать точно есть датчик или нет...
зато по серийному номеру можно, если при пусконаладочных работах он запоминается. И еще можно считать 85 после сброса. Но, конечно, 100% не достичь никогда - всегда есть какая-то ненулевая вероятность получить шум, идеально совпадающий с сигналами, удовлетворяющими условию "датчик есть".
Сделал проверку контрольной суммы. Убил двх зайцев. Температура точно будет без искажений и присутствие датчика покажет при CRC==0 Всем спасибо. Вопрос закрыт.
Не закрыт.)) по одному только CRC==0 нельзя сказать точно есть датчик или нет...
Сделал проверку контрольной суммы. Убил двх зайцев. Температура точно будет без искажений и присутствие датчика покажет при CRC==0 Всем спасибо. Вопрос закрыт.
Не закрыт.)) по одному только CRC==0 нельзя сказать точно есть датчик или нет...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения