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

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

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

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

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

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

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

 
Опции темы

ds18b20 + LCd

Непрочитано 25.07.2013, 16:40  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 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.RUN
 
Регистрация: 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.RUN
 
Регистрация: 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.RUN
 
Регистрация: 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
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
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, время: 05:15.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.