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

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

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

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

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

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

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

 
Опции темы
Непрочитано 15.11.2005, 20:49  
Oleg S
Гость
 
Сообщений: n/a
По умолчанию Time counter

Нужно подавать лог.ед. на вывод с переменным периодом, т.е.
подал 1,
отсчитал 466,6мкс,
подал 1,
отсчитал 500мкс,
подал 1,
отсчитал 533,3мкс,
подал 1,
отсчитал 566,6 мкс
и всё снова.
Понятно, что в течение периода на вывод подать 0 и эти 200нс учесть в осчёте
времени.

Вопрос: как лучше отсчитывать?
Таймер, прерывание, обработка перывания?
Таймер,опрос бита прерывания от таймера и обработка?
Иначе? Насколько близко к этим периодам можно приблизиться?
Реклама:
 
Непрочитано 15.11.2005, 23:53  
xelos
Прописка
 
Регистрация: 27.08.2004
Сообщений: 107
Сказал спасибо: 0
Сказали Спасибо 21 раз(а) в 20 сообщении(ях)
xelos на пути к лучшему
По умолчанию

зависит от того что еще мк делать должен.

я обычно прерывание таймера пользую только когда периодически нужно делать что-то, а не для отсчета времени.

бит переполнения таймера каждый раз отслеживать - можно, но перед каждым импульсом таймер надо вручную настраивать.

функцию написать, где отсчитывается, например 466,6+х*0,1 мкс (либо цикл пустой, расчитанный вручную, либо через таймер), где х это параметр.

точность зависит только от кварца.
xelos вне форума  
Непрочитано 16.11.2005, 00:16  
NemoCut32
Гражданин KAZUS.RU
 
Регистрация: 16.12.2004
Сообщений: 587
Сказал спасибо: 13
Сказали Спасибо 23 раз(а) в 9 сообщении(ях)
NemoCut32 на пути к лучшему
По умолчанию

Можно и в прерывании по Compare Match например сбрасывать таймер (обычно есть автоматический сброс в "0" в таком режиме), а затем заносить новое значение Compare Register. Однако с такой точностью надо выбирать соответствующую тактовую МК и разрешение (предделитель) отсчёта таймера. В прерывании при достаточно большом отношнении длительгность/изменение длительности запись нового значения не критична, а CTC производится аппаратно и надо будет ещё использовать аппаратное управление ножкой МК по Compare Match. Эти функции сейчас есть почти у всех современных МК и вообщем то для подобных случаев и предназначены.
NemoCut32 вне форума  
Непрочитано 19.11.2005, 10:44  
oldraven
Временная регистрация
 
Регистрация: 02.11.2004
Сообщений: 52
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
oldraven на пути к лучшему
По умолчанию

если особо оптимизировать прогу не надо, то можно писать на PicBasic

defineosc - определяешь кварц
pause - пауза в мс
pauseus - пауза в мкс

а встроенный компилятор сделает все сам
oldraven вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Решено] Time Out - орг. и оппоненты... vo1 Отвлекитесь, эмбеддеры! 13 25.12.2008 15:29
Program counter в Протеусе waiting Proteus 8 27.01.2007 23:25


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


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