Перейти к содержанию
    

ШИМ в AVR

Встала такая задача: используется МЕГА 640 возможно ли с помощью таймера Т0 и модуля ШИМ сформировать на выводе ОС0А сигнал частой F и скважностью N, а на выводе ОС0В сигнал с такими же параметрами, но сдвинутым относительно сигнала на ОС0А ровно на полпериода используя только аппаратные средства таймера, т.е. контроллер должен молотить эти сигналы постоянно и не использовать для его формирования программные методы (т.е для его формирования не должны производиться программные действия в обработчиках прерываний по переполнению таймера и тому подобное).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно, если скважность 50%, на пол-периода это типа чтобы второй сигнал(меандр) был инверсией первого. Включите инвертированный ШИМ для одного из выходов. Правда под руками нету даташита, но, вроде, такое возможно. А если надо скважность регулировать, тогда надо как то 2 разных таймера запустить в нужное время.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно, если скважность 50%, на пол-периода это типа чтобы второй сигнал(меандр) был инверсией первого. Включите инвертированный ШИМ для одного из выходов. Правда под руками нету даташита, но, вроде, такое возможно. А если надо скважность регулировать, тогда надо как то 2 разных таймера запустить в нужное время.

 

Да в том то и проблема что не меандр...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да в том то и проблема что не меандр...

Запустите таймер с учетверенной частотой. Дальше продолжать или все уже понятно ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Запустите таймер с учетверенной частотой. Дальше продолжать или все уже понятно ?

 

Если честно, то не очень. Поясните хотябы вкратце если возможно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если честно, то не очень. Поясните хотябы вкратце если возможно

Запустите таймер с учетверенной частотой.

Нужно две последовательности. Назовем первую условно - синус, вторую - косинус.

На период синуса приходится 4 прерывания. Каждое прерывание через четверть периода.

Полный цикл 4 тика таймера.

1 тик - начало синуса.

2 тик - начало косинуса.

3 тик - ничего.

4 тик - ничего.

и по кругу.

Это циклограмма процесса.

Теперь с длительностями синуса косинуса. Считается, что длительности синуса и косинуса одинаковы.

В силу того, что синус и косинус сдвинуты по фазе, окончание импульса синуса и импульса косинуса тоже разнесены.

Т.е. По первому тику таймера, отсчитав определенный интервал (соответствующий длительности синуса) запускаем второй таймер.

По прерыванию от второго таймера.

1 тик - конец синуса.

2 -тик конец косинуса.

3 - ничего.

4 - ничего.

и по кругу.

Возможны варианты с использованием одного таймера, то это требует все время пересчитывать следующее значение таймера.

Ну все, куда уж подробнее. :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...