реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> DS1820+AVR, Простое измерение
Balaganov
сообщение Jun 6 2005, 20:56
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 41
Регистрация: 16-02-05
Пользователь №: 2 688



Уважаемые, есть задача.
Наверняка де-то уже описана, но нет времени рыться.
"Хочу ответ в лоб." Необходимо было "вчера" разработать девайс для измерения температуры (погрешность +- 0,1 градус, индикация HD 44780 с десятыми долями, проц-мега32, asm). На летучке ляпнул про DS 1820 с его внутренним АЦП и 1-WIRE интерфейсом хотя никогда его не применял smile.gif.
В даташите по 32 меге ненашел инфы про 1-wire интерфейс. Хотя в CV (С не предлогать памяти не хватит) есть опция в создателе проекта. Просьба: в 2 словах де собака зарыта и есчо какой из DS-ов порекомендуете?
Go to the top of the page
 
+Quote Post
nameless
сообщение Jun 7 2005, 05:07
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 174
Регистрация: 9-07-04
Пользователь №: 305



Ну насчет С Вы махнули.
Вот исходники под 2313 работают давно и стабильно.
Чего нет: нет точности в 0.1 градус - как добавить - читайте аппликухи от Далласа.
Что есть: DS18B20, (6 линий одного порта - если не надо 6 - принцип остается прежним); просто я опрашивал 6 веток по 16 датчиков на каждой....
Внимательно смотрите на калибровку - вот это важно!!! Для этого и прицеплены модули таймера (.С и .h)
Чего не надо: даже не спрашивайте про rx_DATA[] - это буфер "МАК-а", который у меня при запросе каждого датчика прилетает по уарту.

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

Чуть не забыл: не ругайте за синтаксис - это моя первая прога на С.....
Прикрепленные файлы
Прикрепленный файл  MicroLAN.rar ( 2.44 килобайт ) Кол-во скачиваний: 155
 
Go to the top of the page
 
+Quote Post
yung
сообщение Jun 7 2005, 05:23
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 25-03-05
Из: Рязань
Пользователь №: 3 669



Делал я когда-то и на Си, и на асме. Но меняя работодателей, у кого-то забыл.
Вообще по длине кода большой разницы не заметил. То, что в прицепе, вроде бы с атмеловского сайта.
Прикрепленные файлы
Прикрепленный файл  avr_codes.rar ( 54.15 килобайт ) Кол-во скачиваний: 316
 
Go to the top of the page
 
+Quote Post
phantom
сообщение Jun 7 2005, 08:44
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 323
Регистрация: 13-05-05
Пользователь №: 4 986



Не могу понять, чего вы на низком уровне пишете? В CodeVision в Help-е примеры есть как с DSxx работать. С ним задачка эта делается за два дня - берешь примерчик и переделываешь... (резистор на 5к не забудьте прицепить - типичная ошибка) Конечно, если кому-то охота разбираться с диаграммами состояний DSxx, программировать HD44xx "снизу" и ловить при этом кайф затягивая время проекта, тогда забудьте все что я вам написал и не используйте функцию lcd_puts() из СodeVision а пишите ее сами blink.gif p.s.А в мегу32 поместится наверное 10 измерителей температуры на Си с выводом на ЖКИ. smile.gif


--------------------
О сколько нам открытий чудных ...
Go to the top of the page
 
+Quote Post
cheetah
сообщение Jun 7 2005, 09:21
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 25-05-05
Пользователь №: 5 379



А в мануале на мегу Вы бы ничего и не нашли про 1-Wire. Потому что это интерфейс разработанный Dallas/Maxim и пока Atmel его на аппаратном уровне не поддерживает.
Что касается датчиков вряд ли Вы найдете датчик с цифровым интерфейсов у которого точность больше чем 0.5С.
Что касается программирования на асме этих датчиков- никаких проблем (только надо четко выдерживать временные интервалы)
Если надо исходник- могу выслать. (правда я работал с DS1822 )
Go to the top of the page
 
+Quote Post
Serjio
сообщение Jun 7 2005, 09:50
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 137
Регистрация: 3-09-04
Пользователь №: 594



В Codevision библиотеки для 1-wire встроенные - укажи только ногу, куда прицепил и поставь подтяжку. Там же есть пример работы.
Go to the top of the page
 
+Quote Post
Balaganov
сообщение Jun 7 2005, 15:48
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 41
Регистрация: 16-02-05
Пользователь №: 2 688



Цитата(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 дописать на С, но это в крайнем случае, а пока хотелось бы более эстетичное решение подискать.
Go to the top of the page
 
+Quote Post
Balaganov
сообщение Jun 7 2005, 15:50
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 41
Регистрация: 16-02-05
Пользователь №: 2 688



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

Если не затруднит с исходником буду благодарен.
Go to the top of the page
 
+Quote Post
okela
сообщение Jun 7 2005, 18:48
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 11-01-05
Из: Украина, г. Одесса
Пользователь №: 1 896



Сходи по ссылке http://www.fastavr.com/. Скачай продукт, там же найдешь кучу исходников, в том числе готовый проект для градусника на DS18b20.
В результате компиляции получишь еще и готовый код на ассемблере.
Go to the top of the page
 
+Quote Post
Igor26
сообщение Jun 8 2005, 08:11
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Есть микросхема DS2480. Преобразователь 1-Wire в Txd и Rxd сигналы.
Прикрепленные файлы
Прикрепленный файл  DS2480.pdf ( 778.53 килобайт ) Кол-во скачиваний: 122
 
Go to the top of the page
 
+Quote Post
phantom
сообщение Jun 8 2005, 10:05
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 323
Регистрация: 13-05-05
Пользователь №: 4 986



Можно дизассемблировать Си код с функиями и вставить в ASM-проект. Наоборот смысла не имеет, (если это конечно задача типа простого измерителя температуры ), поскольку в CodeVision все нужные для такого дела функции уже написаны. Если же с температурой надо делать невесть что (типа решать в реальном времени диф.уравнения термодинамики), то тогда конечно без ASM-a не обойтись smile.gif . Но об этом надобно было сказать в постановке проблемы. Следует учесть что CodeVision - не Borland C++ Builder for Windows (где 1 строчка текста=30кБ кода) а генерит довольно эффективный код для AVR, так что этот факт недооценивать нельзя.


--------------------
О сколько нам открытий чудных ...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 8th July 2025 - 13:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01446 секунд с 7
ELECTRONIX ©2004-2016