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

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

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

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

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

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

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

 
Опции темы
Непрочитано 25.07.2013, 16:40  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: ds18b20 + LCd

float ds18b20_temperature(unsigned char *addr)
{
unsigned char resolution;
if (ds18b20_read_spd(addr)==0) return -9999;
resolution=(__ds18b20_scratch_pad.conf_register››5 ) & 3;
if (ds18b20_select(addr)==0) return -9999;
w1_write(0x44); - команда на запуск конвертации
delay_ms(conv_delay[resolution]); - и вот эту задержку надо както заменить...
if (ds18b20_read_spd(addr)==0) return -9999;
w1_init();
return (*((int *) &__ds18b20_scratch_pad.temp_lsb) & ((int) bit_mask[resolution]))*0.0625;
}

вот в библиотеке такой код. Как его лучше изменить чтобы это реализовать.....?
Реклама:
miwutka вне форума  
Непрочитано 25.07.2013, 16:48  
aan20132
Временная регистрация
 
Регистрация: 17.07.2006
Сообщений: 70
Сказал спасибо: 20
Сказали Спасибо 8 раз(а) в 6 сообщении(ях)
aan20132 на пути к лучшему
По умолчанию Re: ds18b20 + LCd

если ситуация позволяет - то да. А иначе - нужно четко высчитывать задержку в соответствии с частотой контроллера и ждать не менее. А на какой цикл настроен термодатчик? Там несколько вариантов точности преобразований (кажись 4) и соответственно у каждой точности свое время.
Хотя, 750мс самое большое.
aan20132 вне форума  
Непрочитано 25.07.2013, 16:52  
aan20132
Временная регистрация
 
Регистрация: 17.07.2006
Сообщений: 70
Сказал спасибо: 20
Сказали Спасибо 8 раз(а) в 6 сообщении(ях)
aan20132 на пути к лучшему
По умолчанию Re: ds18b20 + LCd

ну, честно говоря, синтаксис С для здесь я не очень помню, в основном пишу на асме. Но должно быть что-то типа

while Port.Number == 0 do {}

те пустой цикл пока порт не станет равным 1
aan20132 вне форума  
Непрочитано 25.07.2013, 16:53  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: ds18b20 + LCd

датчик могу настраивать, библитотека позволяет. Сейчас настроен именно на высокую точность, 4-ую которая 750мс. Частота МК 8МГц. Хотелось бы както так изменить библтотеку чтобы ждать таймером а не delay. Чтобы можно было во время ожидания чтото другое делать.
miwutka вне форума  
Непрочитано 25.07.2013, 16:54  
aan20132
Временная регистрация
 
Регистрация: 17.07.2006
Сообщений: 70
Сказал спасибо: 20
Сказали Спасибо 8 раз(а) в 6 сообщении(ях)
aan20132 на пути к лучшему
По умолчанию Re: ds18b20 + LCd

При этом нужно следить, чтобы порт был в режиме входа а не выхода.
aan20132 вне форума  
Непрочитано 25.07.2013, 16:58  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: ds18b20 + LCd

Сообщение от aan20132 Посмотреть сообщение
ну, честно говоря, синтаксис С для здесь я не очень помню, в основном пишу на асме. Но должно быть что-то типа

while Port.Number == 0 do {}

те пустой цикл пока порт не станет равным 1
Я понял. Попробую, но.... Это же тоже самое получается - мы просто сидим в пустом цыкле. Может можно както на таймер прикрутить. У меня таймер настроен на 1 мс прерывание. Чтобы таймер отсчитал время например 740 мс, проверил состояние порта и если еще не сконвертировало,то..... незнаю что сделать ))
Я буду пробовать как вы сказали(позже, отъехал от рабочего места), но может можно сделать так, чтобы основное тело программы выполнялось, а по истечении 750мс МК проверил состояние датчика и если конвертация готова то считал ее...., а если не готова то незнаю.....
miwutka вне форума  
Непрочитано 25.07.2013, 17:26  
aan20132
Временная регистрация
 
Регистрация: 17.07.2006
Сообщений: 70
Сказал спасибо: 20
Сказали Спасибо 8 раз(а) в 6 сообщении(ях)
aan20132 на пути к лучшему
По умолчанию Re: ds18b20 + LCd

Ну, почти то же самое. С той лишь разницей, что гарантированно наступит конец преобразования

Как вариант - разбить процедуру чтения температуры на два этапа (две подпрограммы). В первой всё то же до того места, где задержка. Короче говоря, первая просто стартует преобразование.

А вторая подпрограмма просто считывает. А вызывать её или нет можно определить в прерывании таймера проверяя состояние порта. Если линия "на земле", то выход и дальше до следующего прерывания, иначе прочесть. Например, если таймер на 1мс настроен, то считать до 800 и проверять порт.

Последний раз редактировалось aan20132; 25.07.2013 в 17:28.
aan20132 вне форума  
Непрочитано 25.07.2013, 17:28  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: ds18b20 + LCd

Ага понял, попробую завтра и отпишусь! Думаю должно работать
miwutka вне форума  
Непрочитано 25.07.2013, 17:43  
R360
Прописка
 
Регистрация: 03.11.2010
Адрес: грязань
Сообщений: 153
Сказал спасибо: 58
Сказали Спасибо 74 раз(а) в 35 сообщении(ях)
R360 на пути к лучшему
По умолчанию Re: ds18b20 + LCd

Поинтересуюсь, а за какое время отрабатывается вывод чисел на индикаторы через регистры? Я когда себе подобное делал, задержку выполнял с помощью оператора if else и переменной, т.е. на 1 увеличивал значение и при совпадении опрашивал датчик.
R360 вне форума  
Непрочитано 25.07.2013, 18:04  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: ds18b20 + LCd

Сообщение от miwutka Посмотреть сообщение
Просто я общаюсь постоянно с неопытными людьми которые работают на всяких заводах типа КИПовцев
Чегой ??? Полегче со штампами .
__________________
Осторожно , злой кот
dosikus вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подключение LCD (KS0066U) к AVR микроконтроллерам серии mega eez Микроконтроллеры, АЦП, память и т.д 47 27.09.2013 14:10
ЖКИ и CodeVision: 8-ми битный режим vikpol Микроконтроллеры, АЦП, память и т.д 33 09.03.2009 21:55
Подключение LCD Nokia 3310 vsvetlov Микроконтроллеры, АЦП, память и т.д 0 24.09.2007 21:25
ATmega8 и DS18B20, не определяется датчик butman Микроконтроллеры, АЦП, память и т.д 21 09.06.2007 22:05
На чём написано ??? Koka Proteus, KiCAD и другие ECAD 18 08.10.2006 15:50


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


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