Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: DS1820+AVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Balaganov
Уважаемые, есть задача.
Наверняка де-то уже описана, но нет времени рыться.
"Хочу ответ в лоб." Необходимо было "вчера" разработать девайс для измерения температуры (погрешность +- 0,1 градус, индикация HD 44780 с десятыми долями, проц-мега32, asm). На летучке ляпнул про DS 1820 с его внутренним АЦП и 1-WIRE интерфейсом хотя никогда его не применял smile.gif.
В даташите по 32 меге ненашел инфы про 1-wire интерфейс. Хотя в CV (С не предлогать памяти не хватит) есть опция в создателе проекта. Просьба: в 2 словах де собака зарыта и есчо какой из DS-ов порекомендуете?
nameless
Ну насчет С Вы махнули.
Вот исходники под 2313 работают давно и стабильно.
Чего нет: нет точности в 0.1 градус - как добавить - читайте аппликухи от Далласа.
Что есть: DS18B20, (6 линий одного порта - если не надо 6 - принцип остается прежним); просто я опрашивал 6 веток по 16 датчиков на каждой....
Внимательно смотрите на калибровку - вот это важно!!! Для этого и прицеплены модули таймера (.С и .h)
Чего не надо: даже не спрашивайте про rx_DATA[] - это буфер "МАК-а", который у меня при запросе каждого датчика прилетает по уарту.

В последнем выделенном куске ML_rx я оставляю наименьший результат потому, что при опросе всех линий, конечно с тех линий, где нет запрашиваемого датчика прилетает FF.

Чуть не забыл: не ругайте за синтаксис - это моя первая прога на С.....
yung
Делал я когда-то и на Си, и на асме. Но меняя работодателей, у кого-то забыл.
Вообще по длине кода большой разницы не заметил. То, что в прицепе, вроде бы с атмеловского сайта.
phantom
Не могу понять, чего вы на низком уровне пишете? В CodeVision в Help-е примеры есть как с DSxx работать. С ним задачка эта делается за два дня - берешь примерчик и переделываешь... (резистор на 5к не забудьте прицепить - типичная ошибка) Конечно, если кому-то охота разбираться с диаграммами состояний DSxx, программировать HD44xx "снизу" и ловить при этом кайф затягивая время проекта, тогда забудьте все что я вам написал и не используйте функцию lcd_puts() из СodeVision а пишите ее сами blink.gif p.s.А в мегу32 поместится наверное 10 измерителей температуры на Си с выводом на ЖКИ. smile.gif
cheetah
А в мануале на мегу Вы бы ничего и не нашли про 1-Wire. Потому что это интерфейс разработанный Dallas/Maxim и пока Atmel его на аппаратном уровне не поддерживает.
Что касается датчиков вряд ли Вы найдете датчик с цифровым интерфейсов у которого точность больше чем 0.5С.
Что касается программирования на асме этих датчиков- никаких проблем (только надо четко выдерживать временные интервалы)
Если надо исходник- могу выслать. (правда я работал с DS1822 )
Serjio
В Codevision библиотеки для 1-wire встроенные - укажи только ногу, куда прицепил и поставь подтяжку. Там же есть пример работы.
Balaganov
Цитата(phantom @ Jun 7 2005, 11:44)
Не могу понять, чего вы на низком уровне пишете? В CodeVision в Help-е примеры есть как с DSxx работать. С ним задачка эта делается за два дня - берешь примерчик и переделываешь... (резистор на 5к не забудьте прицепить - типичная ошибка)  Конечно, если кому-то охота разбираться с диаграммами состояний DSxx, программировать HD44xx "снизу" и ловить при этом кайф затягивая время проекта, тогда забудьте все что я вам написал и не используйте функцию lcd_puts() из СodeVision а пишите ее сами blink.gif p.s.А в мегу32 поместится наверное 10 измерителей температуры на Си с выводом на ЖКИ. smile.gif
*

Дело в том что проц уже нагружен всяким "хламом" написанным на asm и HD уже имеется. Есть вариант весь асмовский код перевести как асемблерную вставку в С проект и кусок по DS дописать на С, но это в крайнем случае, а пока хотелось бы более эстетичное решение подискать.
Balaganov
Цитата(cheetah @ Jun 7 2005, 12:21)
А в мануале на мегу Вы бы ничего и не нашли про 1-Wire. Потому что  это интерфейс разработанный Dallas/Maxim и пока Atmel его на аппаратном уровне не поддерживает.
Что касается датчиков  вряд ли Вы  найдете датчик с цифровым интерфейсов у которого точность больше чем  0.5С.
Что касается программирования на асме  этих датчиков- никаких проблем (только надо четко выдерживать временные интервалы)
Если надо исходник- могу выслать. (правда я работал с DS1822 )
*

Если не затруднит с исходником буду благодарен.
okela
Сходи по ссылке http://www.fastavr.com/. Скачай продукт, там же найдешь кучу исходников, в том числе готовый проект для градусника на DS18b20.
В результате компиляции получишь еще и готовый код на ассемблере.
Igor26
Есть микросхема DS2480. Преобразователь 1-Wire в Txd и Rxd сигналы.
phantom
Можно дизассемблировать Си код с функиями и вставить в ASM-проект. Наоборот смысла не имеет, (если это конечно задача типа простого измерителя температуры ), поскольку в CodeVision все нужные для такого дела функции уже написаны. Если же с температурой надо делать невесть что (типа решать в реальном времени диф.уравнения термодинамики), то тогда конечно без ASM-a не обойтись smile.gif . Но об этом надобно было сказать в постановке проблемы. Следует учесть что CodeVision - не Borland C++ Builder for Windows (где 1 строчка текста=30кБ кода) а генерит довольно эффективный код для AVR, так что этот факт недооценивать нельзя.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.