DS18B20 глючит, или руки кривые
- Panda_Y2K
- Грызет канифоль
- Сообщения: 258
- Зарегистрирован: Пт сен 23, 2011 06:44:41
- Откуда: ЮФО
- Контактная информация:
Re: DS18B20 глючит, или руки кривые
Если от внутреннего RC, то сто процентов частота улетает. Я делал для AT89C2051 все работает четко, в морозилку кидал ни чего никуда не уходит, все показывает.
Купи два беляша и собери из них кошку
Labor est etiam ipse voluptas Труд уже сам по себе есть наслаждение (*Формула любви)
Ave novie-nostra ales Если один человек построил - другой завсегда разобрать может....(*Формула Любви).
Labor est etiam ipse voluptas Труд уже сам по себе есть наслаждение (*Формула любви)
Ave novie-nostra ales Если один человек построил - другой завсегда разобрать может....(*Формула Любви).
Re: DS18B20 глючит, или руки кривые
Panda_Y2K писал(а):Если от внутреннего RC, то сто процентов частота улетает. Я делал для AT89C2051 все работает четко, в морозилку кидал ни чего никуда не уходит, все показывает.
Сегодня сбегаю за кварцом
Помогите нупу в написании программ)
-
watchmaker
- Поставщик валерьянки для Кота
- Сообщения: 2177
- Зарегистрирован: Вс ноя 15, 2009 23:13:59
- Откуда: Харьков
- Контактная информация:
Re: DS18B20 глючит, или руки кривые
Проблема с упомянутым чипом. Непериодически несколько раз в неделю он выдает совершенно левые цифры, причем с соответствующим значением контрольной суммы - генератор CRC не ругается. Неисправен датчик?
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
Re: DS18B20 глючит, или руки кривые
watchmaker писал(а):Проблема с упомянутым чипом. Непериодически несколько раз в неделю он выдает совершенно левые цифры, причем с соответствующим значением контрольной суммы - генератор CRC не ругается. Неисправен датчик?
ХЗ.
Помогите нупу в написании программ)
Re: DS18B20 глючит, или руки кривые
В этой схеме проверь свой датчик и успокойся(у тебя в коде ошибки)
- Вложения
-
- Простой термометр.zip
- (136.95 КБ) 341 скачивание
У кошки четыре ноги: вход,
выход, земля и питание.
Но трогать её не моги:
получится замыкание
выход, земля и питание.
Но трогать её не моги:
получится замыкание
Re: DS18B20 глючит, или руки кривые
Дрон писал(а):В этой схеме проверь свой датчик и успокойся(у тебя в коде ошибки)
У тебя пример на пике, выложи, если можно, код к АВР. Если нету, то к пику выложи, алгоритм посмотрю и подобный на авр напишую
Помогите нупу в написании программ)
Re: DS18B20 глючит, или руки кривые
Там исходники есть на асемблере,тебя должен интересовать опрос датчика,сравни со своим.Я код не из алгоритма компилю(забыл как это среда называетса),а на асемблере и иногда на Си.Короче опрос датчика перенеси в свой код и откомпиль(Авр студия умеет копилить смесь си с ассемблером.Payalnick писал(а):У тебя пример на пике, выложи, если можно, код к АВР. Если нету, то к пику выложи, алгоритм посмотрю и подобный на авр напишую
У кошки четыре ноги: вход,
выход, земля и питание.
Но трогать её не моги:
получится замыкание
выход, земля и питание.
Но трогать её не моги:
получится замыкание
Re: DS18B20 глючит, или руки кривые
Дрон писал(а):Там исходники есть на асемблере,тебя должен интересовать опрос датчика,сравни со своим.Я код не из алгоритма компилю(забыл как это среда называетса),а на асемблере и иногда на Си.Короче опрос датчика перенеси в свой код и откомпиль(Авр студия умеет копилить смесь си с ассемблером.Payalnick писал(а):У тебя пример на пике, выложи, если можно, код к АВР. Если нету, то к пику выложи, алгоритм посмотрю и подобный на авр напишую
У меня кодвижн. Он умеет компилить ассемблер?
Помогите нупу в написании программ)
Re: DS18B20 глючит, или руки кривые
Кажетса нет,но неуверен,т.к. пользовался им один раз очень давно.Payalnick писал(а):У меня кодвижн. Он умеет компилить ассемблер?
Качай авр студию. У кошки четыре ноги: вход,
выход, земля и питание.
Но трогать её не моги:
получится замыкание
выход, земля и питание.
Но трогать её не моги:
получится замыкание
Re: DS18B20 глючит, или руки кривые
В общем я совсем запутался...Прошил другую мегу8, всегда показывает -9999...
Помогите написать нормальную программу для датчика температуры и МК ATmega8 в среде CVAVR.
Мне хватит Иницилизации датчика и считывание температуры.
Помогите написать нормальную программу для датчика температуры и МК ATmega8 в среде CVAVR.
Мне хватит Иницилизации датчика и считывание температуры.
Помогите нупу в написании программ)
Re: DS18B20 глючит, или руки кривые
Это есть в даташите на датчикPayalnick писал(а):
Мне хватит Иницилизации датчика и считывание температуры.
- Вложения
-
- DS18B20 datashit na russkom.pdf
- (1008.92 КБ) 559 скачиваний
У кошки четыре ноги: вход,
выход, земля и питание.
Но трогать её не моги:
получится замыкание
выход, земля и питание.
Но трогать её не моги:
получится замыкание
Re: DS18B20 глючит, или руки кривые
Дрон писал(а):Это есть в даташите на датчикPayalnick писал(а):
Мне хватит Иницилизации датчика и считывание температуры.
Дык пробовал писать командами из ДШ, эффекта 0.
Помогите нупу в написании программ)
Re: DS18B20 глючит, или руки кривые
Ну что тогда посоветовать если специально для тебя в даташите неправду пишут?Payalnick писал(а):Дрон писал(а):Это есть в даташите на датчикPayalnick писал(а):
Мне хватит Иницилизации датчика и считывание температуры.
Дык пробовал писать командами из ДШ, эффекта 0.
Брысь в обучалку! 
У кошки четыре ноги: вход,
выход, земля и питание.
Но трогать её не моги:
получится замыкание
выход, земля и питание.
Но трогать её не моги:
получится замыкание
- Panda_Y2K
- Грызет канифоль
- Сообщения: 258
- Зарегистрирован: Пт сен 23, 2011 06:44:41
- Откуда: ЮФО
- Контактная информация:
Re: DS18B20 глючит, или руки кривые
Где-то во время начала этой темы, я сделал свой проект часы, термометр, радио. Проект писал на CVAVR и вот какая интересная особенность выяснилась, похоже в CVAVR все таки кривой 1wire, по тому, что термометр завышает температуру градусов на 4-7, что очень много для этого датчика, а во вторых периодически происходит ошибка инициализации 1wire и выдается та же чепуха -999. у меня это выглядит по другому (конкретно в виде совершенно не известного символа на одном из индикаторов, по тому, что выборка символа идет из массива и при таком значении указатель улетает фиг знает куда). При этом на таком же датчике другой термометр на AT89C2051 работает отлично и показывает честную температуру. Там 1wire я писал сам и ошибки там не возникает, хотя стоит он на балконе. В обоих проектах кварц и при этом на avr термометр лежит в тепличных условиях, и все равно врет. Надо переписывать 1wire и пробовать.
Купи два беляша и собери из них кошку
Labor est etiam ipse voluptas Труд уже сам по себе есть наслаждение (*Формула любви)
Ave novie-nostra ales Если один человек построил - другой завсегда разобрать может....(*Формула Любви).
Labor est etiam ipse voluptas Труд уже сам по себе есть наслаждение (*Формула любви)
Ave novie-nostra ales Если один человек построил - другой завсегда разобрать может....(*Формула Любви).
- Nikopol
- Открыл глаза
- Сообщения: 41
- Зарегистрирован: Чт ноя 05, 2009 15:33:17
- Откуда: Украина, г. Макеевка
- Контактная информация:
Re: DS18B20 глючит, или руки кривые
Меня удивляют люди, которым лень читать даже хелп, прежде чем задать кучу глупых вопросов. Начнем с простых вещей, создаем проект в CVAVR при помощи генератора начального кода, датчик подключаем к выбранному пину, не забываем про подтягивающий резистор 4.7к на + питания. Затем открываем хелп и по ключевому слову ds18b20 ищем функции библиотеки и пример кода для датчика температуры. От туда же берем пример вывода на дисплей. Также обратите внимание, на то, что указано в настройках компилятора о типах переменных. Например char по умолчанию беззнаковый, таким же может являться и int. Также форматированный вывод дробных чисел выключен по умолчанию, для уменьшения кода, если хотите видеть переменные float как дробные, то включите это в настройках !!! А также обязательно проверяйте монтаж! Удачи.
Re: DS18B20 глючит, или руки кривые
Nikopol писал(а):Меня удивляют люди, которым лень читать даже хелп, прежде чем задать кучу глупых вопросов. Начнем с простых вещей, создаем проект в CVAVR при помощи генератора начального кода, датчик подключаем к выбранному пину, не забываем про подтягивающий резистор 4.7к на + питания. Затем открываем хелп и по ключевому слову ds18b20 ищем функции библиотеки и пример кода для датчика температуры. От туда же берем пример вывода на дисплей. Также обратите внимание, на то, что указано в настройках компилятора о типах переменных. Например char по умолчанию беззнаковый, таким же может являться и int. Также форматированный вывод дробных чисел выключен по умолчанию, для уменьшения кода, если хотите видеть переменные float как дробные, то включите это в настройках !!! А также обязательно проверяйте монтаж! Удачи.
Та с переменными я знаю как обращаться. Спасибо, про хелп не знал.
Помогите нупу в написании программ)
- Catcatcat
- Первый раз сказал Мяу!
- Сообщения: 24
- Зарегистрирован: Пт янв 13, 2012 21:46:35
- Откуда: Днепропетровск
- Контактная информация:
Re: DS18B20 глючит, или руки кривые
может поможет информация http://invent-systems.narod.ru/DS18B20_HITECH.htm пример программы работы с датчиком температуры DS18B20 на С HI-TECH для PIC-контроллеров.
Re: DS18B20 глючит, или руки кривые
Catcatcat писал(а):может поможет информация http://invent-systems.narod.ru/DS18B20_HITECH.htm пример программы работы с датчиком температуры DS18B20 на С HI-TECH для PIC-контроллеров.
Класс! Ни одной проверки состояния линии перед выдачей сигналов.
Вот от таких алгоритмов - такие темы и рождаются...
Давал-же ссылку, дам еще раз - более конкретные
http://code.google.com/p/auto-weather/source/browse/barometr/ds1820.c
http://code.google.com/p/auto-weather/source/browse/barometr/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 глючит, или руки кривые
Народ! в общем переделал немного прогу, теперь работает. НО! Перешил её(прогу) на другую мегу8 в дип корпусе(до этого была SMD мега) и не находит датчик. В чем проблема? Монтаж проверял, все в норме.
Помогите нупу в написании программ)