Страница 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 писал(а): У меня кодвижн. Он умеет компилить ассемблер?
Кажетса нет,но неуверен,т.к. пользовался им один раз очень давно. :dont_know:Качай авр студию. :)

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.
Ну что тогда посоветовать если специально для тебя в даташите неправду пишут? :facepalm: :facepalm: :facepalm: Брысь в обучалку! :kill:

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
Catcatcat писал(а):может поможет информация http://invent-systems.narod.ru/DS18B20_HITECH.htm пример программы работы с датчиком температуры DS18B20 на С HI-TECH для PIC-контроллеров.
Класс! Ни одной проверки состояния линии перед выдачей сигналов.
Вот от таких алгоритмов - такие темы и рождаются... :kill:

Давал-же ссылку, дам еще раз - более конкретные 8)
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 мега) и не находит датчик. В чем проблема? Монтаж проверял, все в норме.