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

 
 
> Вопрос по синхронизации таймеров
Sprite
сообщение Feb 4 2011, 16:09
Сообщение #1


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

Группа: Участник
Сообщений: 173
Регистрация: 11-05-08
Пользователь №: 37 414



Доброго всем времени суток.

Имеется 2 таймера, скажем 1 и 2. Период одного таймера всегда в 2 раза больше периода второго.
Требуется получить вот такие сигналы:
Прикрепленное изображение

Можно ли сделать с помощью синхронизации таймеров так, чтобы при изменении периода одного сигнала (черного) автоматически менялся период второго (синий)? Программирую на stm32f103. Заранее спасибо.

Сообщение отредактировал Sprite - Feb 4 2011, 16:10
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DpInRock
сообщение Feb 5 2011, 05:55
Сообщение #2


Гуру
******

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



Совпадать два фронта не будут НИКОГДА в жизни. Поэтому вас и спросили о точности.

Из одного таймера с максимальной частотой можно это сделать программно. По прерыванию делаем делитель. И все.
Примерно так.

Процедура обработки прерывания (таймер на частоте в два раза большей, чем самая максимальная частота на выходе портов)
volatile unsigned int a;
...
{
a++;
*PORT=a;// вывод в порт
}

Получаем синхронные ногодрыганья нужных частот.
Только все это будет с точностью реакции на прерывание (плюс другие прерывания, если нет влложенных) и прочая...


Сообщение отредактировал DpInRock - Feb 5 2011, 06:35


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
Sprite
сообщение Feb 5 2011, 12:06
Сообщение #3


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

Группа: Участник
Сообщений: 173
Регистрация: 11-05-08
Пользователь №: 37 414



Цитата(DpInRock @ Feb 5 2011, 11:55) *
Совпадать два фронта не будут НИКОГДА в жизни. Поэтому вас и спросили о точности.


Тут я с Вами не согласен. Если периоды таймеров одинаковы - то это возможно и лично проверено. В прерывании одного таймера я корректирую значние счетчика другого и выставляю равные периоды. Таймеры работают синхронно такт в такт (разумеется других прерываний нет). А вот если периоды отличаются в 2 раза, то не получается, поэтому я и спросил о возможности синхнонизации таймеров, хотелось бы решить этот вопрос на аппаратном уровне, не прибегая к внешней логике.
Go to the top of the page
 
+Quote Post



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

 


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


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