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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 16.12.2009, 22:01  
alex28411
Прописка
 
Аватар для alex28411
 
Регистрация: 14.01.2008
Сообщений: 121
Сказал спасибо: 1
Сказали Спасибо 19 раз(а) в 18 сообщении(ях)
alex28411 на пути к лучшему
По умолчанию Пмогите разобраться

Доброго времени суток! Сижу я здесь, кручу девайсик, типа термометра, и возник такой вопросик:
Прогу пишу в CodeVision, датчик температуры DS18B20, соответственно и библиотеку прикрутил "DS18B20.h". Есто там такая хитрая функция
float ds18b20_temperature(unsigned char *addr)
и никак не могу разобраться, что она выдает на выходе? температуру в градусах цельсия или просто тот двухбайтный код, который хранится в темрературных регистрах датчика? Нигде не могу найти описание этой функции... Подскажите плиз, кто что знает...
Заранее благодарен.
Реклама:
alex28411 вне форума  
Непрочитано 16.12.2009, 22:18  
Saadov
Почётный гражданин KAZUS.RU
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
Saadov на пути к лучшему
По умолчанию Re: Пмогите разобраться

Что тут искать???
Help CVAvr
Вчитайтесь

float ds18b20_temperature(unsigned char *addr)
this function returns the temperature of the DS18B20 sensor with the ROM code stored in an array of 8 bytes located at address addr.
The temperature is measured in °C. In case of error the function returns the value -9999.
If only one DS18B20 sensor is used, no ROM code array is necessary and the pointer addr must be NULL (0).
Prior on calling the the ds18b20_temperature function for the first time, the ds18b20_init function must be used to specify the desired temperature measurement resolution.
If more several sensors are used, then the program must first identify the ROM codes for all the sensors.
Only after that the ds18b20_temperature function may be used, with the addr pointer pointing to the array which holds the ROM code for the needed device.

Или

эта функция возвращает температуру датчика DS18B20 с кодом ROM, сохраненным в массиве 8 байтов, расположенных в адресе addr.
Температура измерена в °C. В случае ошибки функция возвращает значение-9999.
Если только один датчик DS18B20 используется, никакой массив кода ROM не необходим, и указатель addr должен быть НУЛЕВОЙ (0).
Предшествующий при запросе функция ds18b20_temperature впервые, функция ds18b20_init должна использоваться, чтобы определить желательную температурную разрешающую способность измерения.
Если больше несколько датчиков используются, то программа должна сначала идентифицировать коды ROM для всех датчиков.
Только после этого функция ds18b20_temperature может использоваться, с addr указателем, указывающим на массив, который держит код ROM для необходимого устройства
Saadov вне форума  
Непрочитано 16.12.2009, 23:57  
alex28411
Прописка
 
Аватар для alex28411
 
Регистрация: 14.01.2008
Сообщений: 121
Сказал спасибо: 1
Сказали Спасибо 19 раз(а) в 18 сообщении(ях)
alex28411 на пути к лучшему
По умолчанию Re: Пмогите разобраться

Спасибо большое за помощь.
Т.е. Если температура будет - 5 гр. Цельсия, например, то функция выдаст - 5 (в десятичном измерении), а если будет +10, то результат функции будет 10 (в десятичном измерении)? Я правильно понял?

И еще вопросик: если больше одного датчика, например три, то как они будут располагаться в массиве ROM-кодов, по возрастанию их серийных номеров или по тому, кто первый из низ откликнулся, тот первым и попал в массив?
Например есть два датчика, прикрученных к одной линии, один находится в доме, другой на улице. Командой
devices = w1_search(0xf0,&rom_codes[0][0]); я их запихнул в массив. Какой из них rom_codes[0][0] или rom_codes[1][0] будет соответствовать датчику на улице? а какой в доме?
alex28411 вне форума  
Непрочитано 17.12.2009, 00:03  
alex28411
Прописка
 
Аватар для alex28411
 
Регистрация: 14.01.2008
Сообщений: 121
Сказал спасибо: 1
Сказали Спасибо 19 раз(а) в 18 сообщении(ях)
alex28411 на пути к лучшему
По умолчанию Re: Пмогите разобраться

В интернете я встречал такую конструкцию
float read_temp(unsigned char number)
{
float temp;

temp = ds18b20_temperature(&rom_codes [number][0]);
if (temp › 1000) // если температура отрицательная
{
temp = 4096 - temp;
temp = -temp;
}

return temp;

Откуда взяты эти числа (1000 и 4096) для отрицательных температур, если функция выдает "float", а значит и отрицательные числа она должна выдавать нормально...
alex28411 вне форума  
Непрочитано 17.12.2009, 00:12  
Saadov
Почётный гражданин KAZUS.RU
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
Saadov на пути к лучшему
По умолчанию Re: Пмогите разобраться

Вы упорно не хотите читать хелп к компилятору...

Цитата:
/* detect how many DS18B20 devices
are connected to the bus and
store their ROM codes in the rom_codes array */
devices=w1_search(0xf0,rom_codes);

обнаружьте сколько устройств DS18B20
связаны с шиной и
сохраните их коды ROM в массиве rom_codes
Это только ответ на 1 вопрос, все остальное в хелпе к компилятору, все рассписано подробно с кусками кода, не сочтите за грубость, но кроме вас никто туда не посмотрит за вас. Это похоже на игру в испорченный телефон...
Saadov вне форума  
Непрочитано 17.12.2009, 00:37  
Saadov
Почётный гражданин KAZUS.RU
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
Saadov на пути к лучшему
По умолчанию Re: Пмогите разобраться

Держите в помощь инфо на русском...Быстрее разберетесь
Вложения:
Тип файла: pdf ds18b20-rus.pdf (1,008.9 Кб, 126 просмотров)
Saadov вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с LCD b1300 sersne Микроконтроллеры, АЦП, память и т.д 27 07.12.2009 23:01
Помогите, пожалуйста, разобраться в простейшей схеме.. Светлана Электроника - это просто 18 17.11.2009 01:10
Помогите разобраться Учащийся Микроконтроллеры, АЦП, память и т.д 2 12.10.2009 19:10
[Решено] Помогите разобраться с радиостанцией tarasov128 Автоматика и аппаратура связи 2 06.10.2009 08:18
Помогите разобраться в микросхемах tea5215 Информация по радиокомпонентам 2 28.09.2009 16:06


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


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