если для ШИМ использовать таймер, то есть 2 пути:
1. использовать аппаратные возможности таймера (TIMER1 всегда имеет возможность аппаратно генерировать ШИМ, а другие - в зависимости от модели МК)
2. делать программный ШИМ (на любом таймере можно сделать низкочастотный ШИМ хоть для 32 каналов независимо).
плюс первого подхода - высокая частота ШИМ (в зависимости от разных условий и типа МК может достигать 500 кГц), минус - число аппаратных каналов ШИМ обычно не превышает 3, а в исключительных случаях - 6.
плюс второго подхода - свобода в выборе таймера и возможность реализации числа независимых каналов ШИМ практически равного числу свободных пинов МК. минус - низкая частота программного ШИМ (для 8 бит разрешения ШИМ частота будет не выше, чем тактовая поделенная на 256, фактически - гораздо ниже из-за програмных издержек).
выбирайте
