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

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

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

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

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

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

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

 
Опции темы

Как измерить временой интервал?

Непрочитано 15.08.2011, 21:35  
russo_turisto
Прописка
 
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 243
Сказал спасибо: 45
Сказали Спасибо 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.RUN
 
Регистрация: 03.12.2004
Сообщений: 932
Сказал спасибо: 822
Сказали Спасибо 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
Сказал спасибо: 45
Сказали Спасибо 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,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Как измерить временой интервал?

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

Сообщение от realid Посмотреть сообщение
Решили сразу на 2-х форумах писать
...гулят, так гулять...
А посмотреть, как это делают другие?
https://kazus.run/forums/showthread....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,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Как измерить временой интервал?

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

Сообщение от Easyrider83 Посмотреть сообщение
отправил нолик, снял нолик, подождал 30мкс (если память еще при мне) - опросил порт.
Ему ведомого надо имитировать.
realid вне форума  
Сказали "Спасибо" realid
warel (28.06.2019)
Непрочитано 15.08.2011, 23:37  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
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 Измерительное оборудование 43 20.01.2009 18:07


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


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