Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
2) Самое правильное — буферизовать значение длительности ШИМ. То есть на каждый канал использовать две переменные: первую юзер меняет, когда ему вздумается, вторая используется в обработчике прерывания, и ей значение присваивается один раз в начале каждого периода.
if (++counter==0) присваюваются значения буферным переменным.
Многоканальный программный ШИМ в AVR