реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> LPC2478: Подсчет импульсов с произвольной ноги
yurmala
сообщение Mar 1 2011, 09:28
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 9-02-11
Из: Трехгорный
Пользователь №: 62 814



Приветствую всех! У меня, как у начинающего, вопрос:
Есть задача - определить частоту некого внешнего источника подвешенного на произвольную ногу.
Это ведь нужно с помощью таймеров реализовать? Можно ли какому-либо из таймеров задать в качестве источника синхроимпульсов задать эту ножку? Тогда бы можно было запустить 2 таймера - 1 с периодом в 1 секунду - 2 - от внешнего источника - подсчет кол-ва "тиков".
А если это ножка действительно произвольная (GPIO)? Как я понял (может ошибаюсь) таймер можно настроить на внешний источник если только использовать определенные порты МК в нужных режимах? так ли это?
Какой будет вариант подсчета импульсов на произвольном, обычном GPIO порту?

Сообщение отредактировал yurmala - Mar 1 2011, 09:29
Go to the top of the page
 
+Quote Post
M_Andrey
сообщение Mar 1 2011, 10:04
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 15-10-07
Из: Й-Ола
Пользователь №: 31 376



Лучше всего по прерыванию, но опять-же не все - можно только P0[31:0] и P2[31:0].
Go to the top of the page
 
+Quote Post
yurmala
сообщение Mar 1 2011, 10:08
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 9-02-11
Из: Трехгорный
Пользователь №: 62 814



Цитата(M_Andrey @ Mar 1 2011, 15:04) *
Лучше всего по прерыванию, но опять-же не все - можно только P0[31:0] и P2[31:0].

По прерыванию от таймера?
в моем варианте, на готовой плате, речь идет о ноже P1.19
Как тогда быть в таких случаях? ведь есть платы с кучей периферии на портах в режиме GPIO. И часто работа с этой периферией заключается в подсчете импульсов от него.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Mar 1 2011, 10:42
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Цитата
И часто работа с этой периферией заключается в подсчете импульсов от него.

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

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






--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
yurmala
сообщение Mar 1 2011, 10:58
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 9-02-11
Из: Трехгорный
Пользователь №: 62 814



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

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

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

импульсы ориентировочно 100-200 Гц
в данной конкретной мелкой задачке процессор ничего не делает. ее цель - мерить частоту
считаем что меандр равномерный
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Mar 1 2011, 11:03
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Ну тогда просто считайте. Программно. В чем вопрос?
Программу опроса пина написать?

qq:
while (pin==0);
impulse++;
while (pin!=0);
goto qq;


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
M_Andrey
сообщение Mar 1 2011, 16:19
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 15-10-07
Из: Й-Ола
Пользователь №: 31 376



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


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

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

Go to the top of the page
 
+Quote Post
yurmala
сообщение Mar 2 2011, 09:30
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 9-02-11
Из: Трехгорный
Пользователь №: 62 814



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

Спасибо! Все получилось!
Позже попробую реализовать прерывание по GPIO, а пока действительно, буду использовать CAP1.1


Сообщение отредактировал yurmala - Mar 2 2011, 09:31
Go to the top of the page
 
+Quote Post
МП41
сообщение Mar 3 2011, 13:18
Сообщение #9


4 синих кубика
****

Группа: Участник
Сообщений: 526
Регистрация: 19-09-08
Из: полупроводника, металла и стекла
Пользователь №: 40 326



Цитата(M_Andrey @ Mar 1 2011, 12:04) *
Лучше всего по прерыванию, но опять-же не все - можно только P0[31:0] и P2[31:0].

А у LPC2364 тоже только с этих портов возможно прерывание?

Сообщение отредактировал МП41 - Mar 3 2011, 13:21


--------------------
p-n-p-p-n-p-n-n-p-n-p структура однако очень эффективна
Go to the top of the page
 
+Quote Post
M_Andrey
сообщение Mar 4 2011, 10:09
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 15-10-07
Из: Й-Ола
Пользователь №: 31 376



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


Да GPIO interrupt только для P0[31:0] и P2[31:0].
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 16:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01413 секунд с 7
ELECTRONIX ©2004-2016