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

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

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

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

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

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

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

 
Опции темы
Непрочитано 26.01.2012, 07:31  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Подсчёт импульсов

Необходимо отреагировать сначала на 58-ой импульс, а затем на 74-ый.
Использовать в основном блоке программы цикл состояния входного пина и таким образом осуществлять подсчёт не представляется возможным, так как контроллер всё время занят другими задачами.
В общем нужны прерывания #int_58 #int_74
Пока я придумал поставить другой контроллер, который именно этим делом и будет заниматься, а как только число равно, отправлять сигнал на RB0 основному контроллеру. Но что-то как-то это всё мне кажется не верным.
И вот я вспомнил, что есть модуль ССР, с которым никогда раньше не работал. У него есть режим сравнения. Почитав мануал ничего не понял. Смущает смысл сравнения: значение TMR сравнивается с значением в CCPR1 и генерируется прерывание.
А я думал, что он сравнивает значение в регистре CCPR1 с числом импульсов на входе ССР1.
Так как же мне решить эту задачу?
Реклама:
yellow87 вне форума  
Непрочитано 26.01.2012, 09:13  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: подсчёт импульсов

Если на счётный вход таймера подавать импульсы, они как раз считаются в регистре(рах) TMR.
omercury вне форума  
Непрочитано 26.01.2012, 09:54  
alvadep
Почётный гражданин KAZUS.RU
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: подсчёт импульсов

Какая частота следования импульсов и чем таким занят процессор, что нельзя выделить несколько тактов для обработки? А может, стоит приостановить выполнения всего остального?

Я, например, в одном проекте (упаковочная машина, в которой протяжка работала по энкодеру) на момент протяжки отслеживал только импульсы с энкодера, а все остальное выполнялось в момент простоя протяжки. Правда протяжка занимала примерно треть всего цикла упаковки (аппаратная реализация по счетному входу с использованием модуля ССР была просто не возможна).

Последний раз редактировалось alvadep; 26.01.2012 в 11:33.
alvadep вне форума  
Непрочитано 26.01.2012, 11:18  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Re: Подсчёт импульсов

сейчас 10-200Гц, завтра возможно будет 10-200кГц
И решение я хочу иметь под любую частоту
А процессор занят другими, более важными процессами.
--------------------
Если подавать импульсы на вход TMR, то становится понятнее.
Только в мануале написано, что TMR в случае взаимодействия с ССР не должен работать в асинхронном режиме.
Я не могу понять, что это значит. Ведь сравниваемые импульсы ни с чем не синхронизированы. Значит не будет работать?
yellow87 вне форума  
Непрочитано 26.01.2012, 11:42  
alvadep
Почётный гражданин KAZUS.RU
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Подсчёт импульсов

Еще можно обойтись без ССР. Работать по переполнению таймера.
В таймер записывать значение равное "переполнение" минус 58 и т.д.
alvadep вне форума  
Непрочитано 26.01.2012, 13:21  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Подсчёт импульсов

Сообщение от alvadep Посмотреть сообщение
Еще можно обойтись без ССР
...и перезагружать таймер по 58-му импульсу?
Не, ЛУТше с ним
в TMR записать TOP-74, а в компаратор TOP-74+58...(74 и 58 можно сделать переменной и рассчитывать в процессе работы, если надо).
omercury вне форума  
Непрочитано 26.01.2012, 18:01  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Re: Подсчёт импульсов

omercury, а что такое ТОР ?
yellow87 вне форума  
Непрочитано 26.01.2012, 19:59  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Подсчёт импульсов

Сообщение от yellow87 Посмотреть сообщение
omercury, а что такое ТОР ?
Верхний предел счета, порог переполнения, английский язык. TOP - верх, верхний...
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 26.01.2012, 20:05  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Подсчёт импульсов

Есть режим работы таймера - СТС (Clear Timer/сounter on Compare match).
В этом режиме переполнение счётчика таймера происходит не по его физическому переполнению (в случае с 8-ми битным ›255), а по значению одного из компараторов. Так вот это значение и будет "верхней границей" (ТОР - англ. "вершина") для таймера.
omercury вне форума  
Непрочитано 26.01.2012, 22:11  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Re: Подсчёт импульсов

Не ясно:
1.
Цитата:
(ТОР - англ. "вершина") для таймера.
но мне ведь нужен режим счётчика, а не таймера.
2.
Цитата:
а по значению одного из компараторов
то есть компаратор - это модуль ССР ?
3.
Если ТОР=100
тогда в таймере 100-74=26
а в компараторе 100-74+58=84
разница составляет 58 импульсов, а не 74
то есть я не понял логику такой арифметики
4.
В прерывании от ССР мне снова нужно предустанавливать TMR и CCP ?
5.
И что значит в мануале "В асинхронном режиме ССР не работает" ?
yellow87 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Счетчик импульсов (0,5-50) В lanex1985 Электроника - это просто 21 21.01.2011 11:13
Генераторы импульсов Николай.... Поиск схем. Делимся схемами 4 14.07.2010 21:51
Счётчик импульсов Rust2303 Поиск схем. Делимся схемами 5 12.06.2010 18:38
Счетчик импульсов vo1 Производственное оборудование 3 16.06.2009 15:55
Подсчёт ширины сигнала execute Микроконтроллеры, АЦП, память и т.д 4 30.03.2008 22:26


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


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