shev377 0 18 июня, 2010 Опубликовано 18 июня, 2010 (изменено) · Жалоба Доброго Вам времени суток, Есть Мега32 и датчик DS1821 Где только не постил темы, где только не читал уже имеющиеся сабжи, но НИГДЕ не находил примера КАК ОСУЩЕСТВИТЬ получение температуры с датчика DS1821 на порте D6 микроконтроллера в переменную Temperature Хоть на си хоть на асме, на чём нибуть Сам пишу на си в асме 0, но если кто знает как сделать на асме, пожалуйста, ПИШИТЕ! (вставлю в #asm....#endasm) Очень надеюсь на Вашу помощь в написании прошивки для Mega32 на си для получения температуры с датчика DS1821 на порту D6 Я неоднократно в поиске на этом форуме находил сообщения вроде "УРА получилось законектить DS1821", но авторы отмалчиваются о полученном коде Сам я нашёл сайт http://pinokio3000.narod.ru/sourches/Dallas_1Wire.htm Но ничего не понял Для непосвящённых DS1821 Это не есть DS1820. У DS1821 шина 1wire поддерживается не полностью, у 21 нет адресса, ->DS1820.h не годится PS Это последний форум где я надеюсь получить ответ! Изменено 18 июня, 2010 пользователем shev377 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shev377 0 18 июня, 2010 Опубликовано 18 июня, 2010 (изменено) · Жалоба Нашёл интересный пример со своей библиотечкой, но я не понял Где определяется порт 1wire DS1821 устройства Если я не ошибаюсь там происходит сканирование Всего порта D, если это так, то как упростить до вышеупомянутых элементарных условий? 1w1821___________.rar Изменено 18 июня, 2010 пользователем shev377 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Qwertty 0 18 июня, 2010 Опубликовано 18 июня, 2010 · Жалоба но я не понял Где определяется порт 1wire DS1821 устройства // определение портов для шины 1-wire #define OW_PORT PORTD #define OW_DDR DDRD #define OW_PIN PIND #ifdef OW_MULTIBUS #define OW_BUS_NUM 4 #define OW_BUS1 PD3 #define OW_BUS2 PD4 #define OW_BUS3 PD5 #define OW_BUS4 PD6 #define OW_BUS_MASK ((1 << OW_BUS1)|(1 << OW_BUS2)|(1 << OW_BUS3)|(1 << OW_BUS4)) #else #define OW_BUS PD3 #define OW_BUS_MASK (1 << OW_BUS) #endif Как можно не найти? Даже с комментарием на русском. Если датчик один и соответственно OW_MULTIBUS не задефайнено, то шина на PORTD выводе PD3. Можете изменить под себя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xemul 0 18 июня, 2010 Опубликовано 18 июня, 2010 · Жалоба ... Сам я нашёл сайт http://pinokio3000.narod.ru/sourches/Dallas_1Wire.htm Но ничего не понял Бяда... Опишите Ваши непонятки, а то непонятно, с какого места начинать - с азбуки или с алфавита. Для непосвящённых DS1821 Это не есть DS1820. У DS1821 шина 1wire поддерживается не полностью, у 21 нет адресса, ->DS1820.h не годится В даташиты пробовали заглянуть и сравнить? Выкидываете из сорцов для DS1820 всякие SEARCH_ROM, MATCH_ROM, добавляете специфику DS1821 - вот и всё. PS Это последний форум где я надеюсь получить ответ! Вероятно, в тырнете не нашлось человека с готовой прогой, обеспечивающей "получение температуры с датчика DS1821 на порте D6 микроконтроллера в переменную Temperature". У меня её тоже нет. ЗЫЖ оно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prottoss 0 18 июня, 2010 Опубликовано 18 июня, 2010 · Жалоба Похоже это Вы мне писали вчера:) Попытаюсь объяснить еще здесь. Исходники - это библиотека для работы с датчиком а не готовый пример для компиляции. Библиотека имеет три основные функции для групповой работы или с одним датчиком. Это void OW_SendByte(char data); // посылка байта в линию char OW_DetectPresence(void);// сброс и определение устройства на шине char OW_ReceiveByte(void); // прием байта с линии Теперь, к примеру, открываем даташит на DS1821 и смотрим ЧТО НУЖНО ПОСЛАТЬ И ПРИНЯТЬ В-ИЗ ДАТЧИК(А) ЧТОБЫ ПОЛУЧИТЬ ТЕМПЕРАТУРУ. Все довольно просто:) Если и теперь Вам не хочется шевелить извилинами в моске, пишите мне на почту, за определённую сумму я с удовольствием пошевелю своими:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shev377 0 19 июня, 2010 Опубликовано 19 июня, 2010 · Жалоба Итак, как я понял, 1) Цепляю Вашу библиотеку OneWire 2) дальше копирую функцию void OW_ReceiveByte(char volatile *ow_data); и выполнив её я получу в переменной ow_data например 00000000 (при 0 градусов)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prottoss 0 19 июня, 2010 Опубликовано 19 июня, 2010 · Жалоба Итак, как я понял Не совсем.:) Сначала изучаете даташит на датчик. За тем понимаете, ЧТО (какое сочетание байтов) нужно послать в датчик, чтобы прочитать температуру. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shev377 0 19 июня, 2010 Опубликовано 19 июня, 2010 · Жалоба что это за AAh куда их слать, как слать Кто-нибудь возьмётся написать кусок кода за небольшое вознаграждение? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 19 июня, 2010 Опубликовано 19 июня, 2010 · Жалоба что это за AAh куда их слать, как слать 1 Там написано: Чтение последнего конвертированного значения температуры из температурного регистра- AAh -Мастер (MCU) получит 8-бит температурного значения из DS1821 2 Слать надо в DS1821 3. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 19 июня, 2010 Опубликовано 19 июня, 2010 · Жалоба Кто-нибудь возьмётся написать кусок кода за небольшое вознаграждение?Что такое в вашем понятии "небольшое вознаграждение"? Операция File->Open стоит 150 евро. за 250, думаю, можно написать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 19 июня, 2010 Опубликовано 19 июня, 2010 · Жалоба Припоминаю, у 1821-ого есть важное отличие от 1820-ых. Вообще, 1821 это термостат, фактически автономный. И чтобы он вошёл в режим общения/программирования нужно передёрнуть его питание и подать какие-то команды, возможно за некоторый интервал времени. И если эти команды не подать, то он "превратится" в термостат и линия Din/Dout будет работать только на выход (управление нагрузкой). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shev377 0 20 июня, 2010 Опубликовано 20 июня, 2010 · Жалоба Что такое в вашем понятии "небольшое вознаграждение"? Операция File->Open стоит 150 евро. за 250, думаю, можно написать. Смотря чего 250 е или р PS готовый девайс от мастеркита стоит 900 р И чтобы он вошёл в режим общения/программирования нужно передёрнуть его питание и подать какие-то команды, возможно за некоторый интервал времени. И если эти команды не подать, то он "превратится" в термостат и линия Din/Dout будет работать только на выход (управление нагрузкой). DS1821 Поставляется в режиме цифрового термометра по типу 1820, но без личного адреса, а в режим термостата датчик переводится при первом программировании, затем вывести датчик из режима термостата практически не реально 1 Там написано: Чтение последнего конвертированного значения температуры из температурного регистра- AAh -Мастер (MCU) получит 8-бит температурного значения из DS1821 С трудом переварил эту фразу :unsure: Ваши ссылки на пдфки я посмотрел, в одной пдфке мне попалась ссылка на один сайт, там я полазил и нашёл что-то похожие на пример DS1821+пример программирования термостата, всё на си на пике. 1wire002.c в корне, очень похож на исходник функций http://www.microchipc.com/sourcecode/PIC_H..._thermostat.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 20 июня, 2010 Опубликовано 20 июня, 2010 · Жалоба DS1821 Поставляется в режиме цифрового термометра по типу 1820, но без личного адреса, а в режим термостата датчик переводится при первом программировании, затем вывести датчик из режима термостата практически не реально Ага. С такими знаниями и на свободе Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serjio 0 20 июня, 2010 Опубликовано 20 июня, 2010 · Жалоба Читаем внимательно OPERATING MODES в описании на датчик. Датчик в любое время может работать в режиме 1-wire или термостат. Определяется битом T/~R . Здесь подробно на русском с исходниками. http://www.rtcs.ru/article_detail.asp?id=73 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 20 июня, 2010 Опубликовано 20 июня, 2010 · Жалоба Смотря чего 250 е или рВы где-то в моем сообщении видели упоминание р? PS готовый девайс от мастеркита стоит 900 рТак купите. В чем вопрос? Или вы хотите за разработку изделия под ваши требования заплатить меньше, чем стоит серийное изделие? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться