Страница 3 из 4
Re: DS18B20 глючит, или руки кривые
Добавлено: Пн янв 09, 2012 15:38:43
BCluster
Ок)
Re: DS18B20 глючит, или руки кривые
Добавлено: Вт янв 10, 2012 06:36:32
Panda_Y2K
Если от внутреннего RC, то сто процентов частота улетает. Я делал для AT89C2051 все работает четко, в морозилку кидал ни чего никуда не уходит, все показывает.
Re: DS18B20 глючит, или руки кривые
Добавлено: Вт янв 10, 2012 10:30:24
Payalnick
Panda_Y2K писал(а):Если от внутреннего RC, то сто процентов частота улетает. Я делал для AT89C2051 все работает четко, в морозилку кидал ни чего никуда не уходит, все показывает.
Сегодня сбегаю за кварцом
Re: DS18B20 глючит, или руки кривые
Добавлено: Вт янв 10, 2012 12:37:56
watchmaker
Проблема с упомянутым чипом. Непериодически несколько раз в неделю он выдает совершенно левые цифры, причем с соответствующим значением контрольной суммы - генератор CRC не ругается. Неисправен датчик?
Re: DS18B20 глючит, или руки кривые
Добавлено: Вт янв 10, 2012 22:42:04
Payalnick
watchmaker писал(а):Проблема с упомянутым чипом. Непериодически несколько раз в неделю он выдает совершенно левые цифры, причем с соответствующим значением контрольной суммы - генератор CRC не ругается. Неисправен датчик?
ХЗ.
Re: DS18B20 глючит, или руки кривые
Добавлено: Ср янв 11, 2012 01:28:32
Дрон
В этой схеме проверь свой датчик и успокойся(у тебя в коде ошибки)
Re: DS18B20 глючит, или руки кривые
Добавлено: Ср янв 11, 2012 09:19:46
Payalnick
Дрон писал(а):В этой схеме проверь свой датчик и успокойся(у тебя в коде ошибки)
У тебя пример на пике, выложи, если можно, код к АВР. Если нету, то к пику выложи, алгоритм посмотрю и подобный на авр напишую
Re: DS18B20 глючит, или руки кривые
Добавлено: Ср янв 11, 2012 13:38:16
Дрон
Payalnick писал(а):
У тебя пример на пике, выложи, если можно, код к АВР. Если нету, то к пику выложи, алгоритм посмотрю и подобный на авр напишую
Там исходники есть на асемблере,тебя должен интересовать опрос датчика,сравни со своим.Я код не из алгоритма компилю(забыл как это среда называетса),а на асемблере и иногда на Си.Короче опрос датчика перенеси в свой код и откомпиль(Авр студия умеет копилить смесь си с ассемблером.

Re: DS18B20 глючит, или руки кривые
Добавлено: Ср янв 11, 2012 18:22:43
Payalnick
Дрон писал(а):Payalnick писал(а):
У тебя пример на пике, выложи, если можно, код к АВР. Если нету, то к пику выложи, алгоритм посмотрю и подобный на авр напишую
Там исходники есть на асемблере,тебя должен интересовать опрос датчика,сравни со своим.Я код не из алгоритма компилю(забыл как это среда называетса),а на асемблере и иногда на Си.Короче опрос датчика перенеси в свой код и откомпиль(Авр студия умеет копилить смесь си с ассемблером.

У меня кодвижн. Он умеет компилить ассемблер?
Re: DS18B20 глючит, или руки кривые
Добавлено: Ср янв 11, 2012 19:26:25
Дрон
Payalnick писал(а):
У меня кодвижн. Он умеет компилить ассемблер?
Кажетса нет,но неуверен,т.к. пользовался им один раз очень давно.

Качай авр студию.

Re: DS18B20 глючит, или руки кривые
Добавлено: Чт янв 12, 2012 12:41:57
Payalnick
В общем я совсем запутался...Прошил другую мегу8, всегда показывает -9999...
Помогите написать нормальную программу для датчика температуры и МК ATmega8 в среде CVAVR.
Мне хватит Иницилизации датчика и считывание температуры.
Re: DS18B20 глючит, или руки кривые
Добавлено: Чт янв 12, 2012 14:36:46
Дрон
Payalnick писал(а):
Мне хватит Иницилизации датчика и считывание температуры.
Это есть в даташите на датчик

Re: DS18B20 глючит, или руки кривые
Добавлено: Чт янв 12, 2012 19:12:03
Payalnick
Дрон писал(а):Payalnick писал(а):
Мне хватит Иницилизации датчика и считывание температуры.
Это есть в даташите на датчик

Дык пробовал писать командами из ДШ, эффекта 0.
Re: DS18B20 глючит, или руки кривые
Добавлено: Чт янв 12, 2012 22:34:16
Дрон
Payalnick писал(а):Дрон писал(а):Это есть в даташите на датчик

Дык пробовал писать командами из ДШ, эффекта 0.
Ну что тогда посоветовать если специально для тебя в даташите неправду пишут?

Брысь в обучалку!

Re: DS18B20 глючит, или руки кривые
Добавлено: Пт янв 13, 2012 07:12:21
Panda_Y2K
Где-то во время начала этой темы, я сделал свой проект часы, термометр, радио. Проект писал на CVAVR и вот какая интересная особенность выяснилась, похоже в CVAVR все таки кривой 1wire, по тому, что термометр завышает температуру градусов на 4-7, что очень много для этого датчика, а во вторых периодически происходит ошибка инициализации 1wire и выдается та же чепуха -999. у меня это выглядит по другому (конкретно в виде совершенно не известного символа на одном из индикаторов, по тому, что выборка символа идет из массива и при таком значении указатель улетает фиг знает куда). При этом на таком же датчике другой термометр на AT89C2051 работает отлично и показывает честную температуру. Там 1wire я писал сам и ошибки там не возникает, хотя стоит он на балконе. В обоих проектах кварц и при этом на avr термометр лежит в тепличных условиях, и все равно врет. Надо переписывать 1wire и пробовать.
Re: DS18B20 глючит, или руки кривые
Добавлено: Пт янв 13, 2012 14:53:03
Nikopol
Меня удивляют люди, которым лень читать даже хелп, прежде чем задать кучу глупых вопросов. Начнем с простых вещей, создаем проект в CVAVR при помощи генератора начального кода, датчик подключаем к выбранному пину, не забываем про подтягивающий резистор 4.7к на + питания. Затем открываем хелп и по ключевому слову ds18b20 ищем функции библиотеки и пример кода для датчика температуры. От туда же берем пример вывода на дисплей. Также обратите внимание, на то, что указано в настройках компилятора о типах переменных. Например char по умолчанию беззнаковый, таким же может являться и int. Также форматированный вывод дробных чисел выключен по умолчанию, для уменьшения кода, если хотите видеть переменные float как дробные, то включите это в настройках !!! А также обязательно проверяйте монтаж! Удачи.
Re: DS18B20 глючит, или руки кривые
Добавлено: Пт янв 13, 2012 17:14:33
Payalnick
Nikopol писал(а):Меня удивляют люди, которым лень читать даже хелп, прежде чем задать кучу глупых вопросов. Начнем с простых вещей, создаем проект в CVAVR при помощи генератора начального кода, датчик подключаем к выбранному пину, не забываем про подтягивающий резистор 4.7к на + питания. Затем открываем хелп и по ключевому слову ds18b20 ищем функции библиотеки и пример кода для датчика температуры. От туда же берем пример вывода на дисплей. Также обратите внимание, на то, что указано в настройках компилятора о типах переменных. Например char по умолчанию беззнаковый, таким же может являться и int. Также форматированный вывод дробных чисел выключен по умолчанию, для уменьшения кода, если хотите видеть переменные float как дробные, то включите это в настройках !!! А также обязательно проверяйте монтаж! Удачи.
Та с переменными я знаю как обращаться. Спасибо, про хелп не знал.
Re: DS18B20 глючит, или руки кривые
Добавлено: Пт янв 13, 2012 21:59:33
Catcatcat
может поможет информация
http://invent-systems.narod.ru/DS18B20_HITECH.htm пример программы работы с датчиком температуры DS18B20 на С HI-TECH для PIC-контроллеров.
Re: DS18B20 глючит, или руки кривые
Добавлено: Пт янв 13, 2012 22:38:39
md5sum
Класс! Ни одной проверки состояния линии перед выдачей сигналов.
Вот от таких алгоритмов - такие темы и рождаются...
Давал-же ссылку, дам еще раз - более конкретные
http://code.google.com/p/auto-weather/s ... r/ds1820.c
http://code.google.com/p/auto-weather/s ... r/ds1820.h
Для вызова необходимо прописать
Код: Выделить всё
/*расположение датчиков ds1820 указываем DDRx !!!!*/
#define DS1820_1_port DDRB
#define DS1820_1_bit (1<<PB0)
#define DS1820_2_port DDRB
#define DS1820_2_bit (1<<PB1)
#define DS1820_1 (uint8_t *) &DS1820_1_port , DS1820_1_bit
#define DS1820_2 (uint8_t *) &DS1820_2_port , DS1820_2_bit
Вызывать например так:
Код: Выделить всё
if ((term1_lasterr=ds1820_start(DS1820_1))!=SUCCESS) hw_flags&=~Termo1_OK;
if ((term2_lasterr=ds1820_start(DS1820_2))!=SUCCESS) hw_flags&=~Termo2_OK;
целые 750 милисек делаем что-либо, и потом читаем температуру
Код: Выделить всё
errors=5;
while (((term1_lasterr=ds1820_get_temp(DS1820_1,&temperature))!=SUCCESS)&&(errors>0)){
errors--;
}
Да, используется strong pullup! можно внешнее питание не заводить, но резистор примерно 100 ом в линию не помешает, и спасет МК в случае КЗ на 1-wire.
В настоящее время прога работает от
внутреннего тактового генератора 4 МГц, сбоев не было ни при +20 ни при -10 (температура всего устройства, а не только датчика)
Re: DS18B20 глючит, или руки кривые
Добавлено: Вс янв 22, 2012 13:59:30
Payalnick
Народ! в общем переделал немного прогу, теперь работает. НО! Перешил её(прогу) на другую мегу8 в дип корпусе(до этого была SMD мега) и не находит датчик. В чем проблема? Монтаж проверял, все в норме.