Различные прямоугольные волны от одного микроконтроллера

Я делаю проект, и мне нужен микроконтроллер (ATmega328), чтобы делать эти две вещи:

  • Сгенерируйте прямоугольную волну, которую нужно отфильтровать, и получите напряжение постоянного тока (которое изменяется линейно в зависимости от рабочего цикла).
  • Генерация прямоугольной волны (скважность 50%) с определенным периодом

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

Я думал сделать первый с PWM, а второй вручную установить выходной контакт или очистить его, отсчитывая период с помощью таймера. Однако у меня вопрос: можно ли эти две вещи делать вместе?

Я думаю, что в коде микроконтроллер сможет выполнять рутину за раз. Итак, как я мог генерировать эти две волны одновременно (если это возможно)? Если это возможно, можно ли использовать два разных выхода ШИМ для генерации двух разных сигналов вместо использования таймера и генерации второго сигнала вручную?

Ответы (1)

Каждый вывод OCnx ATmega328 может выводить свою собственную независимую форму волны ШИМ. Кроме того, каждый таймер («n») может иметь свою собственную частоту и/или фазу. Кроме того , ATmega328 PB имеет вывод, который может выводить сигнал, представляющий собой модуляцию двух сигналов, генерируемых отдельными таймерами.

Поскольку вы говорите, что «напряжение постоянного тока и необходимый период могут измениться в любой момент», внимательно прочитайте техническое описание, чтобы узнать, когда вы можете безопасно изменить значения, используемые для генерации сигналов. Если значения изменены в неподходящее время, форма волны может дать сбой, давая вам сигнал, который не имеет постоянного тока 50%.

Привет Игнасио, спасибо за ваш ответ. Таким образом, два сигнала могут быть сгенерированы одновременно ? А что касается последнего, что вы сказали, я не понял. Почему вы говорите, что может быть время, когда было бы неправильно изменить значения?
Взгляните на временные диаграммы в разделах таймера таблицы данных, а также на таблицу выбора волнового генератора в подразделе описания регистров того же.