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

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

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

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

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

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

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 01.06.2013, 17:12  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Чтение DS18B20

Сообщение от oleg110592 Посмотреть сообщение
Ну у производителя микросхемы (APPLICATION NOTE 162) так:
Мало ли что производитель придумает...

Сообщение от oleg110592 Посмотреть сообщение
Ваш код, наверное покомпактнее будет.
Наверное компактнее - сделать OR байта с константой всяко проще чем вычислять маску и делать тот же OR с байтом.
Реклама:
_Артём_ вне форума  
Непрочитано 01.06.2013, 17:37  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Чтение DS18B20

Сообщение от _Артём_ Посмотреть сообщение
Как-то сложно у вас. Зачем вычислять маску (1‹‹(i-1))?
Можно сдвигать вправо и устанавливать старший бит, если нужно.
Так и есть
PHP код:
OWReadBit:
        
sbi        w1Dirw1
rjmp    PC
+1            ;Задержка 5us
rjmp    PC
+1
rjmp    PC
+1
rjmp    PC
+1
        cbi        w1Dir
w1
rjmp    PC
+1            ;Задержка 5us
rjmp    PC
+1
rjmp    PC
+1
rjmp    PC
+1
        lsr        w1rdbuf        
;сдвигаем вправо
        sbic    w1Pin
,w1
        sbr        w1rdbuf
,$80        ;Прибавляем 128 (устанавливаем бит 7 в "1")
        
ldi        w1del,5        ;50 микросекунд(50)
        
rcall    Del_10        ;Ждём 
omercury вне форума  
Непрочитано 01.06.2013, 18:17  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Чтение DS18B20

Сообщение от omercury Посмотреть сообщение
PHP код:
OWReadBit:
        
sbi        w1Dirw1
rjmp    PC
+1            ;Задержка 5us
rjmp    PC
+1
rjmp    PC
+1
rjmp    PC
+
Это для какой частоты? 9 тактов = 5 мкс?

Сообщение от omercury Посмотреть сообщение
PHP код:
        lsr        w1rdbuf        ;сдвигаем вправо
        sbic    w1Pin
,w1
        sbr        w1rdbuf
,$80        ;Прибавляем 128 (устанавливаем бит 7 в "1")
        
ldi        w1del,5        ;50 микросекунд(50)
        
rcall    Del_10        ;Ждём 
Только зачем на ассемблере делать? На Си примерно тоже получится.

P.S. Более правильно делать через аппаратные возможности таймера: генерить 0 с переключением в 1 по CompareMatch и определение длительности бита по результату захвата.
_Артём_ вне форума  
Непрочитано 01.06.2013, 18:22  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Чтение DS18B20

Сообщение от _Артём_ Посмотреть сообщение
Это для какой частоты? 9 тактов = 5 мкс?
1,6МГц - Таня15.
8 тактов - 5мкс.
Там же написано - задержка, а не пауза.

Сообщение от _Артём_ Посмотреть сообщение
зачем на ассемблере делать?
Далеко не каждый компилятор справится с МК без ОЗУ.
(CV точно захлебнётся.)
И на таймер там времени нет.

Последний раз редактировалось omercury; 01.06.2013 в 18:47. Причина: Формальности.))
omercury вне форума  
Непрочитано 01.06.2013, 18:43  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Чтение DS18B20

Сообщение от omercury Посмотреть сообщение
Далеко не каждый компилятор справится с МК без ОЗУ.
(CV точно захлебнётся.)
Да и ИАР может не справится.

Про tiny я как-то забыл что такие есть...
_Артём_ вне форума  
Непрочитано 01.06.2013, 18:43  
uk8amk
Вид на жительство
 
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
uk8amk на пути к лучшему
По умолчанию Re: Чтение DS18B20

Цитата:
Более правильно делать через аппаратные возможности
Раз уж разговор пошел про аппаратные возможности, то более правильно использовать UART для коммуникации с датчиками, а таймеры оставить для более важных задач.
uk8amk вне форума  
Непрочитано 01.06.2013, 19:04  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Чтение DS18B20

Сообщение от uk8amk Посмотреть сообщение
Раз уж разговор пошел про аппаратные возможности, то более правильно использовать
Ну это уже от задачи зависит.

Сообщение от uk8amk Посмотреть сообщение
а таймеры оставить для более важных задач.
У меня обычно UART-ов и так не хватает, а неиспользованные таймеры остаются. У вас может быть наоборот.

Сообщение от uk8amk Посмотреть сообщение
то более правильно использовать UART для коммуникации с датчиками
Можно и SPI для 1wire задействовать...
_Артём_ вне форума  
Непрочитано 01.06.2013, 19:21  
alvadep
Почётный гражданин KAZUS.RU
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Чтение DS18B20

uk8amk, +100500. На UART проще некуда.

Для тех, кто не знает о чем речь (архив).

P.S. Статья не моя, за что купил, за то и продаю. Так что вопросы по орфографии не ко мне и не по окладу.

Последний раз редактировалось alvadep; 01.06.2013 в 20:30.
alvadep вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищем несколько DS18B20 vvkka Микроконтроллеры, АЦП, память и т.д 10 28.02.2012 00:04
Atmega128 DS18B20 koznov123 Микроконтроллеры, АЦП, память и т.д 10 01.06.2011 10:39
Подключение DS18B20 r Attiny2313 vaal555 Микроконтроллеры, АЦП, память и т.д 1 27.09.2010 22:06
ATmega8 и DS18B20, не определяется датчик butman Микроконтроллеры, АЦП, память и т.д 21 09.06.2007 22:05


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


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