Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

MikroC и несколько датчиков DS18B20

Непрочитано 30.01.2012, 22:46  
feo
Временная регистрация
 
Регистрация: 30.03.2005
Адрес: Нижний Новгород
Сообщений: 75
Сказал спасибо: 29
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
feo на пути к лучшему
По умолчанию MikroC и несколько датчиков DS18B20

Здравствуйте!
Пишу программу на MikroC по задумке автора требуется опрос 5 датчиков температурных.
С работой одного датчика разобрался, а вот как реализовать 33 команду? и правильно принять 64-й код датчика.
Что писать после Ow_Write(&PORTA, 4, 0xBE);
И как потом правильно обращаться к определенному датчику.

Спасибо за помощь!
Реклама:
feo вне форума  
Непрочитано 30.01.2012, 22:58  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: MikroC и несколько датчиков DS18B20

Выбираете датчик для общения командой Match ROM(0x55) с номером нужного датчика. Если номера заранее не известны, то сначала Search ROM(0xF0) для определения всех номеров.

Последний раз редактировалось realid; 30.01.2012 в 23:02.
realid вне форума  
Непрочитано 30.01.2012, 23:02  
feo
Временная регистрация
 
Регистрация: 30.03.2005
Адрес: Нижний Новгород
Сообщений: 75
Сказал спасибо: 29
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
feo на пути к лучшему
По умолчанию Re: MikroC и несколько датчиков DS18B20

Для начала как правильно считать ROM 64 бита, в массив? Циклом поэлементного Ow_Read(&PORTA, 4);?
А обращаться как?
Принцип после прочтения даташита понятен, но как именно на mikroC написать?
feo вне форума  
Непрочитано 30.01.2012, 23:08  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: MikroC и несколько датчиков DS18B20

Сообщение от feo Посмотреть сообщение
Для начала как правильно считать ROM 64 бита, в массив? Циклом поэлементного Ow_Read(&PORTA, 4);?
А обращаться как?
Принцип после прочтения даташита понятен, но как именно на mikroC написать?
МикроСей не использую.
А принцип простой как 5 копеек. Даете импульс сброса, после обнаружения импульса присутствия, команду 0x33 после этого выдаете 64 раза слоты чтения(Read slot) в каждом слоте проверяете состояние шины и фиксируете 0 или 1. Если датчиков несколько и ROM'ы их не известны, то 0x33 не прокатит. Надо подавать 0xF0 и определять все номера(см. даташит или 1-wire search).

Последний раз редактировалось realid; 30.01.2012 в 23:11.
realid вне форума  
Непрочитано 30.01.2012, 23:20  
feo
Временная регистрация
 
Регистрация: 30.03.2005
Адрес: Нижний Новгород
Сообщений: 75
Сказал спасибо: 29
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
feo на пути к лучшему
Печаль Re: MikroC и несколько датчиков DS18B20

Код:
char DevRom[8];
..........................
    Ow_Reset(&PORTA, 4);
    Ow_Write(&PORTA, 4, 0x33);
    for (j=0,j‹8,j++)    {
       DevRom[j] =  Ow_Read(&PORTA, 4);
    }
Похоже?
feo вне форума  
Непрочитано 31.01.2012, 01:07  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: MikroC и несколько датчиков DS18B20

Ловите проект на МикроС 5.40
Он не дописан, но на первом этапе работает. Опрашивает три цепочки по три датчика по команде Search Rom.
Если надо будет, проект в протеусе тоже прилеплю. В этом проекте все нужные вам процедуры есть. Черпайте на здоровье.
ЗЫ МикроС меня на этом проекте очень расстроил. В плане оптимизации там еще поле непаханное для работы. Куча ненужных переходов. Ладно, сами смотрите.
Вложения:
Тип файла: rar 1-Wire.rar (85.5 Кб, 399 просмотров)
Easyrider83 вне форума  
Непрочитано 31.01.2012, 11:01  
feo
Временная регистрация
 
Регистрация: 30.03.2005
Адрес: Нижний Новгород
Сообщений: 75
Сказал спасибо: 29
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
feo на пути к лучшему
По умолчанию Re: MikroC и несколько датчиков DS18B20

Большое спасибо за пример!
Я новичек и понял не все:
разбираю файл ds1822.c
Там функции One_Wire_Write_Byte, One_Wire_Read_Bit и т.д.
В стандартной библиотеке таких функци нет.
Я так понимаю Вы какую-то свою библиотеку подключали?
Я по хелпу пытался сторонние баблиотеки включать, но что-то не получалось.
Как правильно подключить необходимые библиотеки?
feo вне форума  
Непрочитано 31.01.2012, 12:25  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: MikroC и несколько датчиков DS18B20

Сообщение от feo Посмотреть сообщение
Большое спасибо за пример!
Я новичек и понял не все:
разбираю файл ds1822.c
Там функции One_Wire_Write_Byte, One_Wire_Read_Bit и т.д.
В стандартной библиотеке таких функци нет.
Ваш main.c работает с файлом ds1822.c, который работает с файлом One-Wire.c, который работает с файлом PIC_GPIO.c т.к. реализация 1-Wire - это фактически ногодрыг. А промежуточные файлы только для стыковки. Подключаете файл к проекту и пользуете.
А из библиотек MicroC я только паузы применяю. Ну для дебага программный UART бывает т.к. в PICKIT2 он есть.
Easyrider83 вне форума  
Непрочитано 31.01.2012, 17:23  
feo
Временная регистрация
 
Регистрация: 30.03.2005
Адрес: Нижний Новгород
Сообщений: 75
Сказал спасибо: 29
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
feo на пути к лучшему
По умолчанию Re: MikroC и несколько датчиков DS18B20

Ухх, как у вас все не просто в примере.
Мне бы только запросить код устройства, а потом к нему обратиться, не более того. Без динамического добавления новых датчиков.
Код:
 Ow_Reset(&PORTA, 4);
    Ow_Write(&PORTA, 4, 0x33);
    for (j=0;j‹8;j++)    {
       DevRom[j] =  Ow_Read(&PORTA, 4);
       Delay_ms(15);
    }
Таким кодом получил массив символов: 40 248 240 215 2 0 0 163
Как я понимаю это 64-й код.
40 - код семейства
248 240 215 2 0 0 - код устройства
163 - CRC
Правильно ли я понимаю?
Теперь чтобы обратиться к устройству я должен также передать на линию весь этот код? тем же способом?

Последний раз редактировалось feo; 31.01.2012 в 19:47.
feo вне форума  
Непрочитано 31.01.2012, 20:54  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: MikroC и несколько датчиков DS18B20

Сообщение от feo Посмотреть сообщение
Теперь чтобы обратиться к устройству я должен также передать на линию весь этот код? тем же способом?
...вместе с командой и CRC...
Нажмите на изображение для увеличения
Название: 1w.jpg
Просмотров: 352
Размер:	31.8 Кб
ID:	31149
omercury вне форума  
 

Метки
ds18b20, mikroc
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Proteus+MikroC fmssp Proteus 9 21.03.2012 23:52
MikroC MMC DDimon Микроконтроллеры, АЦП, память и т.д 43 07.05.2009 22:11
Вопрос к знатокам mikroC ctefan Микроконтроллеры, АЦП, память и т.д 2 02.05.2009 09:19
20 датчиков DS18B20 на шине, минимальный нагрузоч. резистор picavr Микроконтроллеры, АЦП, память и т.д 6 05.02.2009 17:27
MIKROC 7 dosikus Proteus, KiCAD и другие ECAD 1 01.09.2007 20:17


Часовой пояс GMT +4, время: 04:04.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.