Свежие обсуждения
Микроконтроллеры

ШИМ с фиксированой скважностю

1 2

Здравствуйте. Возникла следующая проблема при выполнении курсовой работы: нужно сгенерировать 4 ШИМ сигнала на МК AVR.Сигналы должны быть с разной скважностью и подаватся на выход при нажатии соответствующей кнопки клавиатуры. В основном все понятно, не могу понять только как сгенерировать ШИМ с разными значениями скважности относительно друг друга. Подскажите пожалуйста как действовать.

 

sanmal: Возникла следующая проблема при выполнении курсовой работы:
Сессия уже, какая курсовая?
Организовать ШИМ в МК можно используя его внутренний таймер, а можно просто через задержку в программе МК.

 

Я больше склонен к использованию внутренего таймера, и вопрос состоит в том какие числа записывать в регистр сравнения OCR1 чтобы параметры ШИМ менялись при переключении канала? Курсовую завернули из за того, что я формировал ШИМ при помощи генератора сигналов, подключеного на вход контроллера, далее этот сигнал преобразовывался на АЦП. даные из АЦП и записывались в регистр OCR1 - тоесть происходила модуляция.

 

Когда у меня в МК небыло ШИМ модуля, то я делал следующим образом:
По прерыванию таймера я считаю от 0 до 255. Сравниваю значение счетчика-ШИМ со значением регистра нужного канала ШИМ. Когда значение счектчика-ШИМ меньше заданого значения ШИМ я переключаю ножку в лог. 1. В противном случае - 0. Так можно организовать сколько угодно каналов. Единственное, что может возникнуть - низкая частота следования ШИМ импульсов.

Про АВРы я не в курсе, а в ПИКе один раз настраивается таймер на определенную частоту генерации (коэффициент предделителя, значение переполнения). Коэффициент заполнения (скважность) задается в другом регистре. Для изменени скажности соответственно нужно менять значение этого второго регистра.

 

Лихо! С АЦП товарисч разобрался, а вот с таймером - проблемы Уточните постановку:

sanmal: Сигналы должны быть с разной скважностью и подаватся на выход

Это означает, что выход один, а разных сигналов - много? Или на каждый сигнал - по своему выходу? А лучше - нарисуйте времянку, если интересует конкретный ответ.

 

Попробую обяснить без диаграмы:
Выход - один (OC1A), сигналов - 4. К этому выходу подключается демультиплексор.
При нажатии клавиши "1" на выход ОС1А должен выводится сигнал со скважностю N, демультиплексор в свою очередь подключается к приемнику 1.
При нажатии клавиши "2" на выход ОС1А выводится сигнал со скважностю M, демультиплексор подключается к приемнику 2.
И т.д.

 

Т.е. источник сигнала - сам микроконтроллер, который раздает его по четырем приемникам? Если так, то решение совершенно типовое - программируете таймер в режим ШИМ, по нажатию кн.1 заносите в OCR число N, по нажатию кн.2 - число M и т.д. Или вы что-то другое хотели спросить? А то больно уж просто все

 

Простите, название темы выглядит как "сухая вода". ШИМ- -это Широтно-Импульсная Модуляция, т.е. при заданной частоте меняется длительность импульса., или иначе- скважность. А тут-ШИМ с фиксированой скважностю...

 

...это ЧМ, практически. Или ЧТ...

 

Этот сигнал будет подаватся на ШИМ модуляторы, тоесть даные 4 ШИМ сигнала - это несущие, параметры которых будут менятся в зависимости от амплитуды входящего в модулятор сигнала.
Меня интересует сама зависимость параметров этих ШИМ сигналов в зависимости от числа, записаного в OCR...