Разрешающая способность у DS1821 на порядок ниже!asidalv писал(а):DS1821 , скажите, она - аналог DS1820
Команды и разрешающая способность отличаются.asidalv писал(а):или совсем другие там команды
Разрешающая способность у DS1821 на порядок ниже!asidalv писал(а):DS1821 , скажите, она - аналог DS1820
Команды и разрешающая способность отличаются.asidalv писал(а):или совсем другие там команды
БРЯХНЯ(из кинухи)!!!!Мурик писал(а):...Разрешающая способность у DS1821 на порядок ниже!...
Provides 8-bit (1°C resolution) centigrade temperature measurements
в даташите приведена формула получения повышенного разрешения.Мурик писал(а):Читайте даташит.
железо+софт, где используется разрешение 0,01 градуса на датчиках DS1821 использую более 10 лет, в том числе и в поставках за рубеж(2005 год, несколько сот штук, Англия). Всего выпущенных единиц - десятки тысячь. Нареканий нет.BOB51 писал(а):...Вам приходилось...в режиме HIGH-RESOLUTION TEMPERATURE READINGS с этими датчиками работать?...для пользователя есть без особой надобности...
Код: Выделить всё
void OneWire_SendBit(unsigned char SBit)
{
OneWire_BusHigh();
OneWire_BusLow();
if (SBit==1)Если бы порт A был сконфигурирован на выход - то ладно. А так, фактически, просто дёргаются встроенные резисторы подтяжки, без вывода информации на пины порта A МК.ROMan2947 писал(а):в коде я имел ввиду если датчик подает импульс присутствия, то контроллер мне показывает это выводом на портА числа 3, если же он не отвечает то 100
WiseLord Спасибо за наводку.WiseLord писал(а):Проблема в последней строке. Проверять надо не на равенство единице, а на неравенство нулю.Код: Выделить всё
void OneWire_SendBit(unsigned char SBit) { OneWire_BusHigh(); OneWire_BusLow(); if (SBit==1)
От вышестоящей функции сюда приходят не только ноль или единица, а и другие числа - степени двойки.
Код: Выделить всё
OneWire_SendBit(SByte&0x01);Код: Выделить всё
if ((OWI_PIN&(1<<OWI_BIT))==0)//***3
{
...
}
else
{
...
}
9mm писал(а):Но почему при подключении к 0 пину работает, а например при подключении к 4 пину не работает.
Код: Выделить всё
#define DS18B20_Bit 0
...
unsigned char OneWire_ReciveBit() {
...
if ((DS18B20_Pin&(1<<DS18B20_Bit))==1)