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

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

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

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

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

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

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

 
Опции темы

Подсчёт импульсов

Непрочитано 26.01.2012, 22:37  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Подсчёт импульсов

Подавайте импульсы на ножку прерывания, настройте прерывание по фронту или спаду, и добавьте таймаут для обнуления регистра с количеством импульсов, если этих импульсов нет слишком долго (пауза)
Реклама:
niXto вне форума  
Непрочитано 26.01.2012, 23:05  
Bumbarra
Вид на жительство
 
Регистрация: 16.09.2011
Сообщений: 342
Сказал спасибо: 10
Сказали Спасибо 170 раз(а) в 103 сообщении(ях)
Bumbarra на пути к лучшему
По умолчанию Re: Подсчёт импульсов

Какое семейство контроллеров/процессоров? Какой конкретно контроллер?

5. А то и значит, что не работает. Для работы модуля CCP необходима синхронизация приращения таймера с фронтом внутреннего тактового генератора.

Компаратор - имеется ввиду конечно же цифровой компаратор в модуле CCP - Capture/Compare/PWM. Работает CCP от таймера TMR1. Текущее значение таймера сравнивается со значением, записанным в регистры сравнения CPPR и в случае равенства значений выполняется какое-либо действие, установленное битами настройки модуля. Назови конкретно модель контроллера, расскажем, как сделать
Bumbarra вне форума  
Непрочитано 26.01.2012, 23:16  
Bumbarra
Вид на жительство
 
Регистрация: 16.09.2011
Сообщений: 342
Сказал спасибо: 10
Сказали Спасибо 170 раз(а) в 103 сообщении(ях)
Bumbarra на пути к лучшему
По умолчанию Re: Подсчёт импульсов

Сообщение от yellow87 Посмотреть сообщение
Смущает смысл сравнения: значение TMR сравнивается с значением в CCPR1 и генерируется прерывание.
А я думал, что он сравнивает значение в регистре CCPR1 с числом импульсов на входе ССР1.
Так как же мне решить эту задачу?
Дак потому что таймер TMR1 может получать приращение от разных источников - как от внешнего, так и от внутреннего. CPP не имеет своего входа в режиме сравнения. Он получает сигнал счета от таймера TMR1.
В регистре CCPR содержится либо значение таймера TMR1, если CCP наботает в режиме захвата, либо значение для сравнения с содержимым таймера TMR1, если CCP работает в режиме цифрового компаратора. Событие при равенстве регистров CCPR и TMR1 определяется настройками модуля.

Ты путаешь два разных режима работы модуля CCP - режим захвата и режим сравнения.
Оба режима работают на основе таймера/счетчика TMR1. Этот TMR1 может получать счетный импульс от разных источников - от внешнего входа напрямую или через предделитель, либо от внутреннего тактового генератора с частотой Fosc/4, напрямую или через предделитель.
Далее, если модуль работает в режиме захвата, то событием захвата будет фронт сигнала на входе CCP, в зависимости от битов настройки в регистре CCP1CON. При этом значение регистров таймера будет переписано в регистры CCPR.
А если модуль работает в режиме сравнения, то изначально в регистры CCPR заносится значение, до которого должен досчитать таймре TMR1. Конкретное действие в случае равенства будет отпределяться настройками модуля.

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

Спасибо вам, Bumbarra, за некоторые разъяснения.
Но всё равно до конца не ясно.
Как осуществить синхронизацию приращения таймера с фронтом внутреннего тактового генератора. Ведь импульсы, которые я хочу измерять не имеют кварцевой частоты. А вообще очень быстро меняют свою частоту следования(от нуля до 200 Гц)
Смысл работы модуля в режиме захвата мне ясен. НО как настраивать синхронизацию?
И смысл расчёта тоже не понимаю. Зачем ТОР ?
Я теперь примерно так себе представляю рачёт
Код:
///// main()	
flag=0;
CCPR=58;
SET_TIMER1(0);
///// #int_ССР1
if(flag чётный) 
	CCPR+=74; // то пришёл 58-ой импульс
		  // настраиваемся на следующий 74-ый
	else CCPR+=58;	// то пришёл 74-ый импульс
			//настраиваемся на следующий 58-oй
flag=!flag;	// меняем определитель импульса
PIC16F877 + MPLAB + PIC_CCS_C

Последний раз редактировалось yellow87; 27.01.2012 в 05:27.
yellow87 вне форума  
Непрочитано 27.01.2012, 08:09  
CERGEI1982
Почётный гражданин KAZUS.RUN
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,578
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Подсчёт импульсов

Возми контроллер где есть 2 CCP для автоматической работы и быстродействия,главное чтоб входные частоты с внешки заводились на каждый таймер с кем работает CCP.
Да и проблема в счет с частотой в 200 Гц смех,за паузы между счетом можно много чего сделать...
__________________
Глаза боятся,а руки делают.

Последний раз редактировалось CERGEI1982; 27.01.2012 в 08:12.
CERGEI1982 вне форума  
Непрочитано 27.01.2012, 09:56  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Подсчёт импульсов

Сообщение от yellow87 Посмотреть сообщение
Спасибо вам, Bumbarra, за некоторые разъяснения.
Но всё равно до конца не ясно.
Как осуществить синхронизацию приращения таймера с фронтом внутреннего тактового генератора. Ведь импульсы, которые я хочу измерять не имеют кварцевой частоты. А вообще очень быстро меняют свою частоту следования(от нуля до 200 Гц)
Смысл работы модуля в режиме захвата мне ясен. НО как настраивать синхронизацию?
Попробуйте еще раз вернуться к документации на МК. В ней должны быть приведены блок-схемы отдельных модулей в разных режимах. Очень доступные рисунки. Попробуйте возникшие вопросы задать себе и поискать в этих рисунках на них ответ.
Синхронизация в вашем пониманиие - это всего лишь формирование внутреннего отображения входного сигнала с привязкой его фронта и спада к внутреннему тактирующему импульсу. Обычно это реализуется путем защелкивания входного состояния триггером. Наиболее частая реализация - D-триггер, на D-входе входной уровень, на клоке - внутренняя тактировка. На выходе повтор входного уровня, но уже с привязкой к клоку. Ничего для вас нового.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 27.01.2012, 10:05  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Re: Подсчёт импульсов

Сообщение от CERGEI1982 Посмотреть сообщение
Возми контроллер где есть 2 CCP
Я написал что использую PIC16F877 - там два ССР
Сообщение от CERGEI1982 Посмотреть сообщение
Да и проблема в счет с частотой в 200 Гц смех,за паузы между счетом можно много чего сделать...
Я писал, что сегодня 200Гц, завтра 200кГц

А с синхронизацией ничего так и не ясно, кроме того что в асинхронном режиме ССР не работает.
Буду проверять на практике.
yellow87 вне форума  
Непрочитано 27.01.2012, 10:23  
alvadep
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Подсчёт импульсов

Сообщение от CERGEI1982 Посмотреть сообщение
Возми контроллер где есть 2 CCP для автоматической работы и быстродействия,главное чтоб входные частоты с внешки заводились на каждый таймер с кем работает CCP.
Да и проблема в счет с частотой в 200 Гц смех,за паузы между счетом можно много чего сделать...
У PIC16F877 и так есть 2 модуля ССР, но работают они от одного таймера TMR1. Я так понимаю, Вы предлагаете один модуль ССР использовать в режиме сравнения и без триггера специальных функций (это для счета 5, а второй ССР использовать в режиме сравнения плюс триггер специальных функций (это для счета 74), по которому сбрасывается TMR1. Можно и так. Но, программный сброс TMR1 в обработчике прерываний ССР1 много ресурсов не скушает, хотя у ТС процессор уж очень занят.
alvadep вне форума  
Непрочитано 27.01.2012, 10:51  
alvadep
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Подсчёт импульсов

Сообщение от yellow87 Посмотреть сообщение
А с синхронизацией ничего так и не ясно, кроме того что в асинхронном режиме ССР не работает.
Буду проверять на практике.
Не парьтесь. При частоте 200Гц и даже 200кГц на входе RC0/T1OSO/T1CK счетчика TMR1 Вы разницы (синхронный или асинхронный режим) не заметите. Смело используйте синхронный режим работы счетчика.
Инкремент счетчика TMR1 в синхронном режиме произойдет не по фронту входного сигнала, а немного с запаздыванием (максимум на величину периода тактового сигнала процессора).

Последний раз редактировалось alvadep; 27.01.2012 в 10:56.
alvadep вне форума  
Непрочитано 27.01.2012, 11:15  
CERGEI1982
Почётный гражданин KAZUS.RUN
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,578
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Подсчёт импульсов

Сообщение от yellow87 Посмотреть сообщение
Я написал что использую PIC16F877 - там два ССР
Узкий выбор что то у вас.Но хозяин барин
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
 
Опции темы

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

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, время: 01:56.


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