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

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

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

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

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

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

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

 
Опции темы

Чтение DS18B20

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

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

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

Сообщение от _Артём_ Посмотреть сообщение
Как-то сложно у вас. Зачем вычислять маску (1‹‹(i-1))?
Можно сдвигать вправо и устанавливать старший бит, если нужно.
Так и есть
PHP код:
OWReadBit:
        sbi        w1Dir, w1
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.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Чтение DS18B20

Сообщение от omercury Посмотреть сообщение
PHP код:
OWReadBit:
        sbi        w1Dir, w1
rjmp    PC+1            ;Задержка 5us
rjmp    PC+1
rjmp    PC+1
rjmp    PC+1 
Это для какой частоты? 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.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Чтение DS18B20

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

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

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

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

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

Сообщение от uk8amk Посмотреть сообщение
то более правильно использовать UART для коммуникации с датчиками
Можно и SPI для 1wire задействовать...
_Артём_ вне форума  
Непрочитано 01.06.2013, 19:21  
alvadep
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
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:34.


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