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

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

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

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

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

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

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

 
Опции темы
Непрочитано 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,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 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,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 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,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
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,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
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.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
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, время: 08:53.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot