Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ШИМ в AVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Vasia Klin
Встала такая задача: используется МЕГА 640 возможно ли с помощью таймера Т0 и модуля ШИМ сформировать на выводе ОС0А сигнал частой F и скважностью N, а на выводе ОС0В сигнал с такими же параметрами, но сдвинутым относительно сигнала на ОС0А ровно на полпериода используя только аппаратные средства таймера, т.е. контроллер должен молотить эти сигналы постоянно и не использовать для его формирования программные методы (т.е для его формирования не должны производиться программные действия в обработчиках прерываний по переполнению таймера и тому подобное).
GDI
Можно, если скважность 50%, на пол-периода это типа чтобы второй сигнал(меандр) был инверсией первого. Включите инвертированный ШИМ для одного из выходов. Правда под руками нету даташита, но, вроде, такое возможно. А если надо скважность регулировать, тогда надо как то 2 разных таймера запустить в нужное время.
Vasia Klin
Цитата(GDI @ Nov 14 2007, 14:28) *
Можно, если скважность 50%, на пол-периода это типа чтобы второй сигнал(меандр) был инверсией первого. Включите инвертированный ШИМ для одного из выходов. Правда под руками нету даташита, но, вроде, такое возможно. А если надо скважность регулировать, тогда надо как то 2 разных таймера запустить в нужное время.


Да в том то и проблема что не меандр...
alexander55
Цитата(Vasia Klin @ Nov 14 2007, 14:42) *
Да в том то и проблема что не меандр...

Запустите таймер с учетверенной частотой. Дальше продолжать или все уже понятно ?
Vasia Klin
Цитата(alexander55 @ Nov 14 2007, 14:53) *
Запустите таймер с учетверенной частотой. Дальше продолжать или все уже понятно ?


Если честно, то не очень. Поясните хотябы вкратце если возможно
alexander55
Цитата(Vasia Klin @ Nov 14 2007, 16:36) *
Если честно, то не очень. Поясните хотябы вкратце если возможно

Запустите таймер с учетверенной частотой.
Нужно две последовательности. Назовем первую условно - синус, вторую - косинус.
На период синуса приходится 4 прерывания. Каждое прерывание через четверть периода.
Полный цикл 4 тика таймера.
1 тик - начало синуса.
2 тик - начало косинуса.
3 тик - ничего.
4 тик - ничего.
и по кругу.
Это циклограмма процесса.
Теперь с длительностями синуса косинуса. Считается, что длительности синуса и косинуса одинаковы.
В силу того, что синус и косинус сдвинуты по фазе, окончание импульса синуса и импульса косинуса тоже разнесены.
Т.е. По первому тику таймера, отсчитав определенный интервал (соответствующий длительности синуса) запускаем второй таймер.
По прерыванию от второго таймера.
1 тик - конец синуса.
2 -тик конец косинуса.
3 - ничего.
4 - ничего.
и по кругу.
Возможны варианты с использованием одного таймера, то это требует все время пересчитывать следующее значение таймера.
Ну все, куда уж подробнее. biggrin.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.