Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 10.10.2014, 08:57  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию ds18b20 изменить точность измерения

Всем привет!
MPLAB + PIC CCS
Температуру датчики измеряют правильно и выводят на экран.
А вот изменить точность измерения не получается.
Точность всегда 12 бит.
Делаю так:

Код:
///////////////////////
void main(void)
{
.............
SetSpeed(0x1F);
......
}

////////////////////////
void SetSpeed(int b)
{
DS_Reset();
DS_Write(0xCC);
DS_Write(0x4E);
for(i=0; i‹3; i++) DS_Write(b);
//DS_Reset();
//DS_Write(0xCC);
//DS_Write(0x48);
}
Реклама:
yellow87 вне форума  
Непрочитано 10.10.2014, 12:46  
Ivan_fd
Прописка
 
Регистрация: 04.02.2007
Адрес: Украина
Сообщений: 126
Сказал спасибо: 44
Сказали Спасибо 29 раз(а) в 20 сообщении(ях)
Ivan_fd на пути к лучшему
По умолчанию Re: ds18b20 изменить точность измерения

Должно работать.
Может с датчиком что?

Я делал так:

Код:
 DS_Reset();
 DS_Write(0xCC);
 DS_Write(0x4E);
 DS_Write(0x00);
 DS_Write(0x00);
 DS_Write(0x1F);
Ivan_fd вне форума  
Непрочитано 10.10.2014, 16:37  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,528
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию Re: ds18b20 изменить точность измерения

Если не принципиально время преобразования, то проще округлить данные.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Непрочитано 10.10.2014, 17:42  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,504
Сказал спасибо: 401
Сказали Спасибо 2,217 раз(а) в 1,315 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: ds18b20 изменить точность измерения

Так ведь если верить документам, то независимо от того, какая разрядность измерений выбрана, данные все равно будут содержать 2 полных байта. Младшие биты при меньшей разрядности будут иметь неопределенное значение и их не нужно будет учитывать.
"For 11-bit resolution, bit 0 is undefined. For 10-bit resolution, bits 1 and 0 are undefined..."
NewWriter вне форума  
Непрочитано 13.10.2014, 02:59  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Re: ds18b20 изменить точность измерения

Я читал русское руководство по работе с датчиком. Там написано, что при понижении дискретности все биты сдвигаются вправо. То есть если нулевой байт имел точность 2^-4 то то будет 2^-3
А время преобразования длительностью в 750 мсек меня не устраивает. Вот и хочу точность понизить-время уменьшить.
Ivan такой же код привёл как и у меня. Почему же у меня не работает? Непонятно.
Я уже два новых датчика проверил. Толку нет : - (
yellow87 вне форума  
Непрочитано 13.10.2014, 07:24  
Wiza_
Почётный гражданин KAZUS.RU
 
Регистрация: 29.12.2012
Адрес: Питер
Сообщений: 982
Сказал спасибо: 131
Сказали Спасибо 230 раз(а) в 157 сообщении(ях)
Wiza_ на пути к лучшему
По умолчанию Re: ds18b20 изменить точность измерения

Сообщение от yellow87 Посмотреть сообщение
Ivan такой же код привёл как и у меня.
Не совсем. Своим циклом вы пишите

DS_Reset();
DS_Write(0xCC);
DS_Write(0x4E);
DS_Write(0x1F);
DS_Write(0x1F);
DS_Write(0x1F);
Wiza_ вне форума  
Непрочитано 13.10.2014, 08:41  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Re: ds18b20 изменить точность измерения

Циклом-не циклом: смысл один. Уставки температур меня не интересуют.
Решил проверить считать температуру после 100-милисекундной паузы.
И что интересно: всё работает нормально. Значит вычисленные биты никуда, всётаки, не сдвигаются, а просто не вычисляются.
То есть протокол разный на разные партии датчиков? Тоже странно как-то...
Скорее это мой источник инфы меня подвёл
yellow87 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как рассчитать точность измерения напряжения? alenka_fml Электроника - это просто 22 27.05.2012 23:10
Стабилизация измерения АЦП ATMega8535 7Fantomas7 Микроконтроллеры, АЦП, память и т.д 41 02.03.2011 13:25
Реальная простая схема измерения температуры ТСП100 Churchill Измерительное оборудование 44 06.07.2010 00:19
ATmega8 и DS18B20, не определяется датчик butman Микроконтроллеры, АЦП, память и т.д 21 09.06.2007 22:05


Часовой пояс GMT +4, время: 13:13.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot