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

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

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

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

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

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

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

 
Опции темы
Непрочитано 15.08.2011, 21:35  
russo_turisto
Прописка
 
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 243
Сказал спасибо: 48
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
russo_turisto на пути к лучшему
По умолчанию Как измерить временой интервал?

Эмулирую однопроводный интерфейс, в часности датчик DS18D20. Надо при запросе кода датчика послать ответ из 8-ми байт.
Сначала надо отследить сброс линии (это низкий уровень от 480 до 700 микросек).
Далее идет Старт бит 1-4 мксек и после 15 микросек определяем от ведущего ноль или единица на линии. Ждем следующий старт бит. Если пришло 0х33 то посылаем ответ серийного номера из 8-ми байт. С посылкой легче, временые промежутки не отслеживаем, орентируемся по старт битам.

Так вот вопрос - как измерить интервал низкого уровня от 1 до 700 микросекунд. Понятно что по прерываниям, надо задействовать ТМР0 (или 16ти разр таймер), но как более подробно сделать.
Пишу на Си. Камень 16F628
Реклама:
russo_turisto вне форума  
Сказали "Спасибо" russo_turisto
warel (28.06.2019)
Непрочитано 15.08.2011, 21:55  
aleksandr-zh
Гражданин KAZUS.RU
 
Регистрация: 03.12.2004
Сообщений: 932
Сказал спасибо: 824
Сказали Спасибо 609 раз(а) в 216 сообщении(ях)
aleksandr-zh на пути к лучшему
По умолчанию Re: Как измерить временой интервал?

я не пишу под ПИКи давно, но алгоритм, думаю, будет схож:
инициализация таймера, сброс, проверка "тиков", выполение по совпадению
Самый простой и понятный способ. Возможно и по прерыванию
aleksandr-zh вне форума  
Сказали "Спасибо" aleksandr-zh
warel (28.06.2019)
Непрочитано 15.08.2011, 22:27  
russo_turisto
Прописка
 
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 243
Сказал спасибо: 48
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
russo_turisto на пути к лучшему
По умолчанию Re: Как измерить временой интервал?

а как измерить длителность нулевого импульса между спадом и подъемом на ножке. Если задействовать INT PORTB.0 то прерывание настраивается по фронту или спаду сигнала. Допустим прерывание сделал по спаду (начало импульса), пошло тикание счетчика. А как остановить его на подьеме импульса?
russo_turisto вне форума  
Сказали "Спасибо" russo_turisto
warel (28.06.2019)
Непрочитано 15.08.2011, 22:42  
Nfc
Прописка
 
Регистрация: 11.10.2008
Сообщений: 132
Сказал спасибо: 8
Сказали Спасибо 35 раз(а) в 30 сообщении(ях)
Nfc на пути к лучшему
По умолчанию Re: Как измерить временой интервал?

Прямо в обработчике 'по-спаду' переконфигурировать на прерывание 'по-нарастанию'.
Nfc вне форума  
Эти 2 пользователя(ей) сказали Спасибо Nfc за это сообщение:
russo_turisto (15.08.2011), warel (28.06.2019)
Непрочитано 15.08.2011, 22:42  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,529
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Как измерить временой интервал?

Решили сразу на 2-х форумах писать
realid вне форума  
Сказали "Спасибо" realid
warel (28.06.2019)
Непрочитано 15.08.2011, 23:29  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Как измерить временой интервал?

Сообщение от realid Посмотреть сообщение
Решили сразу на 2-х форумах писать
...гулят, так гулять...
А посмотреть, как это делают другие?
https://kazus.ru/forums/showthread.p...ight=1wire+PIC

http://www.microchip.su/showthread.php?t=6160
omercury вне форума  
Сказали "Спасибо" omercury
warel (28.06.2019)
Непрочитано 15.08.2011, 23:31  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Как измерить временой интервал?

отправил нолик, снял нолик, подождал 30мкс (если память еще при мне) - опросил порт.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
warel (28.06.2019)
Непрочитано 15.08.2011, 23:32  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,529
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Как измерить временой интервал?

Сообщение от Easyrider83 Посмотреть сообщение
отправил нолик, снял нолик, подождал 30мкс (если память еще при мне) - опросил порт.
Ему ведомого надо имитировать.
realid вне форума  
Сказали "Спасибо" realid
warel (28.06.2019)
Непрочитано 15.08.2011, 23:37  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Как измерить временой интервал?

Сообщение от realid Посмотреть сообщение
Ему ведомого надо имитировать.
А... Ну тут тоже, думаю, ничего сложно нет. Все сделать в прерывании. Если частота контроллера небольшая, время отрегулировать несколькими командами NOP. Если прерывание за 30-50мкс отработает, то и фиг с ним.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
warel (28.06.2019)
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ностальжи по школе... Ar-Gen-Tum Отвлекитесь, эмбеддеры! 141 27.02.2015 16:10
Альтернативная энергия kum1953 Поиск схем. Делимся схемами 1218 01.10.2012 16:30
Как правильно измерить ток? rusyvochka Микроконтроллеры, АЦП, память и т.д 49 16.05.2012 21:42
Как измерить сопротивление утечки? nerozero Измерительное оборудование 15 18.03.2011 18:22
Как измерить длину кабеля UTP "электрическим" спос tnosov Измерительное оборудование 46 20.01.2009 18:07


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


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