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

 
 
 
Reply to this topicStart new topic
> LPC1768 - несколько меандров с одного таймера
BCluster
сообщение Dec 21 2010, 13:54
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 6-11-07
Пользователь №: 32 111



Добрый день. У LPC17xx есть возожность делать тогл определенных ножек по прерыванию на аппаратном уровне. Вот собственно вопрос - могу ли я делать тогл одной ножки с частотой f, а другой с f/32 например? Пробовал реализовать это программно - очень сильное отставание по фазе. А эти сигналы должны быть синхронны. Сейчас соединил MAT выход одного таймера с CAP входом другого просто физически проводком sm.gif, настроенного как счетчик и делю на 32 частоту. Но этот вариант какой то подозрительный.
Go to the top of the page
 
+Quote Post
bodja74
сообщение Dec 21 2010, 17:08
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



делаете прерывание с частотой ф
ставите счетчик в прерывание
и каждое 32е прерывание дергаете не только первой но и второй ногой
Go to the top of the page
 
+Quote Post
BCluster
сообщение Dec 22 2010, 03:54
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 6-11-07
Пользователь №: 32 111



Я писал уже что такая реализация не подходит. Я не дергаю в прерывании ногой. Процессор делает это на аппаратном уровне. У меня и так мало процвремени, чтоб тратить его еще на это безобразие. А если первый меандр дергать аппаратно, а второй программно - никакой синхронизации нет.
Go to the top of the page
 
+Quote Post
vmp
сообщение Dec 22 2010, 04:22
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



А почему бы не использовать Motor Control PWM? Три независимых канала, синхронный запуск.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Dec 22 2010, 04:32
Сообщение #5


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Не знаю точно, как реализованы таймеры в кортексах, но вот на MSP430 есть непрерывный режим таймеров.
Это такой режим, когда таймер непрерывно щёлкает по кругу, а защёлки срабатывают при совпадении.
Тогда в прерывании от защёлки достаточно "зарядить" её на следующий интервал (включая настройку переключения ног) и спокойно заниматься своими делами.
Ноги будут дёргаться "железно", а скорость обработки прерывания будет уже некритична.
Тогда от одного таймера можно получить столько разных асинхронных интервалов и частот, сколько позволяют его защёлки (или регистры сравнения)
Ну и, конечно, есть некий минимальный предел интервала, обусловленный скоростью обработки прерываний и соответственно, "перезаряда" регистров сравнения


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
BCluster
сообщение Dec 22 2010, 06:22
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 6-11-07
Пользователь №: 32 111



MrYuran - так можно сделать, но этот вариант все равно будет жрать проц время, причем много, ибо таймер прерывает с частотой в 5мгц. Может я чего-то не допонял, если так буду раз если объясните. sm.gif
А насчет PWM - там вроде частота фиксированная на все каналы и можно менять скважность? Хотя могу и ошибаться.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Dec 22 2010, 06:33
Сообщение #7


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(BCluster @ Dec 22 2010, 12:22) *
MrYuran - так можно сделать, но этот вариант все равно будет жрать проц время, причем много, ибо таймер прерывает с частотой в 5мгц. Может я чего-то не допонял, если так буду раз если объясните. sm.gif

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


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
BCluster
сообщение Dec 22 2010, 07:58
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 6-11-07
Пользователь №: 32 111



Цитата(MrYuran @ Dec 22 2010, 13:33) *
Ну, если вам нужны мегагерцы - тут уж ничего не поделать, придётся жертвовать по таймеру на канал. Либо воспользоваться внешним со-контроллером


Да меня это не смущает, меня смущает внешнее соединение одного таймера с другим. Думаю нормально ли это.
Go to the top of the page
 
+Quote Post
vmp
сообщение Dec 22 2010, 08:06
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Цитата(BCluster @ Dec 22 2010, 12:22) *
А насчет PWM - там вроде частота фиксированная на все каналы и можно менять скважность? Хотя могу и ошибаться.

Не просто PWM, а Motor Control PWM - это совсем другой модуль.
Там 3 независимых таймера, у каждого свой счетчик и регистр лимита (до скольких считать). А вот регистр с битами запуска - общий, так что стартовать они будут синхронно.
Так что читайте Chapter 25 User Manual.
Go to the top of the page
 
+Quote Post
BCluster
сообщение Dec 22 2010, 10:42
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 6-11-07
Пользователь №: 32 111



Окей понял. Сейчас поглядим.
Go to the top of the page
 
+Quote Post

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

 


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


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