помогите переделать, библиотеку ds18b20 под мои требования.

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение ValBag »

Amstron писал(а):На самом деле, в файле ds18b20_.lib нет функции ds18b20_temperature! Она закоментированна...
, т. к. разделена на составляющие: конвертирование, а затем считывание температуры, что и хотел автор темы. Раскомментируйте и используйте в целом, если нужно.
Реклама
Amstron
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Вт дек 21, 2010 21:18:52

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение Amstron »

Убрал я коментарии - появилась такая ошибка : L172: undefained symbol "ds18b20_temperature" . Вместо L184 стало L172....
Вот кусок программы определения температыры:

void Termometr(void)
{
float temp;
temp = ds18b20_temperature(0)*10;//команда для получения значения температуры
indication_IND=temp;
}


В самом начале программы у меня вот это написанно:
#include<mega8.h>

#asm
.equ __w1_port=0x18
.equ __w1_bit=0
#endasm

#include <ds18b20_.h>
#include <delay.h>

Помогите разобраться!
Реклама
Amstron
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Вт дек 21, 2010 21:18:52

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение Amstron »

Нашол я почему у меня функцию не видел! Надо было еще раскоментировать функцию в файле ds18b20_.h

Касяк остался! Если сделать чтобы программа уходила в прерывание при каждом переполнении 0 таймера (256), то ошибка постоянно висит. Если поставить пределитель на 8 , то ошибка выскакивает 50/50.

Если поставить 64 - пределитель, то всеравно иногда проскакивает, как и раньше!!!

Жду помощи....
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение ValBag »

Amstron писал(а):Жду помощи....
Приложите код.
Реклама
Эиком - электронные компоненты и радиодетали
Amstron
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Вт дек 21, 2010 21:18:52

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение Amstron »

ValBag писал(а):
Amstron писал(а):Жду помощи....
Приложите код.
Я использую один датчик. Выше я уже выкладывал код.
Реклама
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение ValBag »

Amstron писал(а):Я использую один датчик. Выше я уже выкладывал код.
Так ошибка та-же? undefained symbol "ds18b20_temperature"?
Реклама
Amstron
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Вт дек 21, 2010 21:18:52

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение Amstron »

ValBag писал(а):
Amstron писал(а):Я использую один датчик. Выше я уже выкладывал код.
Так ошибка та-же? undefained symbol "ds18b20_temperature"?
Эта ошибка выскакивала при закоментированной строчке этой функции.

Сейчас в устройстве иногда выскакивет левое число... В этом то и ошибка....
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение ValBag »

Amstron писал(а):Сейчас в устройстве иногда выскакивет левое число... В этом то и ошибка....
Ошибки в чтении, похоже. Используете паразитное питание или по трехпроводной линии? Попробуйте вот эту библиотеку (ниже). Результат выдается в int
Вложения
ds18x20_v2.rar
(1.47 КБ) 254 скачивания
Amstron
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Вт дек 21, 2010 21:18:52

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение Amstron »

ValBag писал(а):
Amstron писал(а):Сейчас в устройстве иногда выскакивет левое число... В этом то и ошибка....
Ошибки в чтении, похоже. Используете паразитное питание или по трехпроводной линии? Попробуйте вот эту библиотеку (ниже). Результат выдается в int
Использую трехпроводную линию. Сейчас попробую...
Amstron
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Вт дек 21, 2010 21:18:52

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение Amstron »

Amstron писал(а): Использую трехпроводную линию. Сейчас попробую...
Вылазиет ошибка в этих строчках. Ни не могу понять...

if( ds18b20_init( 0, 30, 60, DS18B20_11BIT_RES ) ) //инициализация датчика. Анализ присутствия датчика
{
indication_IND=555; //delay_ms( 1000 );
}
else { indication_IND=222;
};


undefained symbol 'ds18b20_init'

no matching if
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение ValBag »

Amstron
Вы раскоментировали калибровку? Тогда, вместо DS18B20_11BIT_RES, нужно в вызове поставить нужный параметр разрешающей способности.

Вобще-то в define это есть.
Amstron
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Вт дек 21, 2010 21:18:52

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение Amstron »

ValBag писал(а):Amstron
Вы раскоментировали калибровку? Тогда, вместо DS18B20_11BIT_RES, нужно в вызове поставить нужный параметр разрешающей способности.

Вобще-то в define это есть.
Поставил.
if( ds18b20_init(0, 30, 60, 2 ) ) //инициализация датчика. Анализ присутствия датчика

Всеравно видит ошибку... что нет функции ds18b20_init
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение ValBag »

Amstron писал(а):Все равно видит ошибку... что нет функции ds18b20_init
Если по библиотеке, которую приложил, то уберите в обеих файлах знаки комментариев в этой функции.
Amstron
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Вт дек 21, 2010 21:18:52

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение Amstron »

ValBag писал(а):
Amstron писал(а):Все равно видит ошибку... что нет функции ds18b20_init
Если по библиотеке, которую приложил, то уберите в обеих файлах знаки комментариев в этой функции.
Убрал. Заработало. Но ошибку всеравно выдает! Правда на выходе другая температура вместо 30 выдает 50 градусов. А вот если вытащить датчик то выдает ошибку. Точно такуюже ошибку выдает если прерывание поставить чаще!!!

Жду помощи(((
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение ValBag »

Amstron писал(а):Убрал. Заработало. Но ошибку всеравно выдает! Правда на выходе другая температура вместо 30 выдает 50 градусов. А вот если вытащить датчик то выдает ошибку. Точно такуюже ошибку выдает если прерывание поставить чаще!!!
Есть еще один момент.
Т. к. результат приведен к int, то младшие 4 разряда, отображающие дробную часть, вам надо обрабатывать отдельно.
В остальном, у вас какие-то неувязки с прерыванием. Вы же весь код не хотите привести.
AndreiVV
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Вс май 11, 2008 19:12:34

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение AndreiVV »

O-LED писал(а):Значит по порядку.
Пишу в CVAVR. Использую термометр DS18B20. библиотеку работы с ней беру стандартную из CVAVR. Алгоритм работы у неё, как вы наверное знаете, следующий -
команда на измерение температуры - пауза(длительность зависит от точности измерения, до 750мкс) - чтение температуры.
Так вот, если просто делать какой термометр, то такой алгоритм вполне подходит. а вот если делать устройство посложней, которое постоянно чтото обрабатывает, и должно откликаться в режиме реального времени, то в момент паузы мы получаем "затык" в работе длинной 750мкс. Это очень сильно портит впечатление от работы устройства.
Что хотелось бы.
Хотелось бы иметь такую библиотеку, чтоб я сам мог дать команду на измерение, например ds18b20_convert(), потом сам, любым удобным мне способом, отсчитал нужную паузу(а в это время моя программа крутится в обычном режиме, без всяких "туплений"), а потом прочитал уже готовый результат например ds18b20_readTemp()
Полазив по инету, подходящей мне библиотеки не нашел. кругом примеры и обучалки на базе встроенной в CVAVR библиотеки.
Помогите найти, или изменить имеющуюся под мои требования. желательно чтоб она поддерживала несколько датчиков, (хотя это наверное не трудно добавить).
Спасибо.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18648
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение ARV »

очень хреново ищите, ибо на этом самом форуме не один раз были и ссылки. и исходники, и объяснения, как все это сделать. в конце концов можете скачать с моего сайта проект термостата и оттуда извлечь требуемое.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: помогите переделать, библиотеку ds18b20 под мои требован

Сообщение Аlex »

Точно такуюже ошибку выдает если прерывание поставить чаще!!!
Если Вы хотя бы немного почитали о работе датчика, а не тыкали всё подряд в свою прогу, то поняли что прерывания просто напросто "портят" временные интерывалы в тайм-слотах. Нужно запрещать прерывание на время тайм-слота (точнее на основную его часть) и обязательно повторный опрос при "корявом" CRC. Об этом не раз уже на форуме говорилось. Библиотека 1-wire пишется очень просто, ничего там сверхестественного нет. Надо просто почитать немного литературу и понять как это всё работает.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»