Страница 1 из 1

ШИМ на ATmega168

Добавлено: Вс авг 10, 2025 15:30:52
Alex_ka
Да данном микроконтроллере необходимо реализовать шим с инверсией. Но инверсия должна быть на разных портах, т.е. выхода разных таймеров, это порт PD3/ОС2В и РD5/ОС0В. Сделать инверсию на одном любом таймере ТО или Т2 не проблема, но как сделать на разных, чтобы за основу был взят любой из них как основной, так как планируется изменять скважность. И ещё, надо шим получить порядка 15-18 кГц на порте PD4/Т0. Подскажите пожалуйста, как это реализовать программно, желательно не на словах, а на примере.
https://img.radiokot.ru/files/136567/me ... uq1s1j.jpg

Re: ШИМ на ATmega168

Добавлено: Вс авг 10, 2025 18:18:44
VNS
[uquote="Alex_ka",url="/forum/viewtopic.php?p=4737597#p4737597"]Да данном микроконтроллере необходимо реализовать шим с инверсией. Но инверсия должна быть на разных портах, т.е. выхода разных таймеров, это порт PD3/ОС2В и РD5/ОС0В.[/uquote]
Установите биты к примеру у таймера 0: СОМ0В = 2, а у таймера 2: СОМ2В = 3 и получите инверсию при одинаковых значениях регистров ОСR0B и OCR2B.

ИМХО, значения OCRnB желательно изменять в прерывании.
И ещё, надо шим получить порядка 15-18 кГц на порте PD4/Т0.
Если скважность не требуется изменять, то при тактовой частоте 8 МГц ШИМ реализуется на выводе PD4 в прерывании по таймеру 1 допустим (Timer/Coutner1 Compare Match B). Ежели необходимо изменять скважность, то придётся тактировать МК от кварца на частоте 4 МГц, и управлять выводом PD4 в прерываниях по таймеру 1 как в Coutner1 Compare Match B так и в Counter1 Overflow. Таким образом частота ШИМ будет около 16 кГц.