Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: LPC2478: Подсчет импульсов с произвольной ноги
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
yurmala
Приветствую всех! У меня, как у начинающего, вопрос:
Есть задача - определить частоту некого внешнего источника подвешенного на произвольную ногу.
Это ведь нужно с помощью таймеров реализовать? Можно ли какому-либо из таймеров задать в качестве источника синхроимпульсов задать эту ножку? Тогда бы можно было запустить 2 таймера - 1 с периодом в 1 секунду - 2 - от внешнего источника - подсчет кол-ва "тиков".
А если это ножка действительно произвольная (GPIO)? Как я понял (может ошибаюсь) таймер можно настроить на внешний источник если только использовать определенные порты МК в нужных режимах? так ли это?
Какой будет вариант подсчета импульсов на произвольном, обычном GPIO порту?
M_Andrey
Лучше всего по прерыванию, но опять-же не все - можно только P0[31:0] и P2[31:0].
yurmala
Цитата(M_Andrey @ Mar 1 2011, 15:04) *
Лучше всего по прерыванию, но опять-же не все - можно только P0[31:0] и P2[31:0].

По прерыванию от таймера?
в моем варианте, на готовой плате, речь идет о ноже P1.19
Как тогда быть в таких случаях? ведь есть платы с кучей периферии на портах в режиме GPIO. И часто работа с этой периферией заключается в подсчете импульсов от него.
DpInRock
Цитата
И часто работа с этой периферией заключается в подсчете импульсов от него.

Обычно люди думают, прежде чем рисовать схему.

Кроме того, методика подсчета импульсов частотой 10 Мгц может радикально отличаться от методики подсчета 10 герц.
Кроме того методика сильно зависит от того, чего ваш процессор делает кроме этого.
Кроме того методика подсчета радикально зависит от длительности импульсов. К примеру, период 1 секунда, длительность 1 наносекунда...




yurmala
Цитата(DpInRock @ Mar 1 2011, 15:42) *
Обычно люди думают, прежде чем рисовать схему.

все верно. обычно думают. в моем случае работаю с тем что дали

Цитата(DpInRock @ Mar 1 2011, 15:42) *
Кроме того, методика подсчета импульсов частотой 10 Мгц может радикально отличаться от методики подсчета 10 герц.
Кроме того методика сильно зависит от того, чего ваш процессор делает кроме этого.
Кроме того методика подсчета радикально зависит от длительности импульсов. К примеру, период 1 секунда, длительность 1 наносекунда...

импульсы ориентировочно 100-200 Гц
в данной конкретной мелкой задачке процессор ничего не делает. ее цель - мерить частоту
считаем что меандр равномерный
DpInRock
Ну тогда просто считайте. Программно. В чем вопрос?
Программу опроса пина написать?

qq:
while (pin==0);
impulse++;
while (pin!=0);
goto qq;
M_Andrey
Цитата(yurmala @ Mar 1 2011, 13:08) *
По прерыванию от таймера?
в моем варианте, на готовой плате, речь идет о ноже P1.19
Как тогда быть в таких случаях? ведь есть платы с кучей периферии на портах в режиме GPIO. И часто работа с этой периферией заключается в подсчете импульсов от него.


Нет. Я имел в виду прерывание от GPIO. Настраиваем на фронт (или спад). Сработало прерывание - плюсанули счетчик. А таймер можно использовать для подсчета периода или интервала некоторого количества импульсов (для точности). Или считать импульсы за фиксированное время.

Если-же речь зашла о конкретной ножке P1.19, то туда заведен вход CAP1[1], тогда вообще проще некуда. Настраиваете Interrupt on CAP1.1 event и анализируете T1CR1.

yurmala
Цитата(M_Andrey @ Mar 1 2011, 21:19) *
Если-же речь зашла о конкретной ножке P1.19, то туда заведен вход CAP1[1], тогда вообще проще некуда. Настраиваете Interrupt on CAP1.1 event и анализируете T1CR1.

Спасибо! Все получилось!
Позже попробую реализовать прерывание по GPIO, а пока действительно, буду использовать CAP1.1
МП41
Цитата(M_Andrey @ Mar 1 2011, 12:04) *
Лучше всего по прерыванию, но опять-же не все - можно только P0[31:0] и P2[31:0].

А у LPC2364 тоже только с этих портов возможно прерывание?
M_Andrey
Цитата(МП41 @ Mar 3 2011, 16:18) *
А у LPC2364 тоже только с этих портов возможно прерывание?


Да GPIO interrupt только для P0[31:0] и P2[31:0].
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.