_noise_ сейчас попробую тебе популярно обьяснить что такое ШИМ.
на линии МК, настроеной на вывод может быть только 2 устойчивых положения, лог 1 (+5в) и лог. 0 (0 В)
как можно заставить светодиод загораться плавно? по-сути, нужно увеличить силу тока, проходящего через него. но напряжение у нас фиксированное, либо 5В либо 0В. как быть?
Представь диаграмму, где на линии вывода с определенной частотой изменяется этот лог. уровень так, что время пребывания в лог 1 равно времени прибывания лог. 0. вот тогда скважность ШИМ = 50%. Скважность ШИМ это отношение времени прибывания лог. 1 к периоду. соотвественно чем оно больше тем дольше удерживается лог.1. при достаточной частоте ШИМ незаметно что уровень изменяется, а скважность влияет на ток, проходимый по выводу МК. так вот и управляется светодиод))) достаточно линейно от максимума к минимуму и от минимума к максимуму изменять скважность, и на выводе мы получим синусоидальный сигнал...........
Шим бывает программный, бывает аппаратный. программный шим это когда все это делается программно, тоесть удержание лог. 1 и пр...
если МК имеет аппаратный ШИМ - то надо настроить линию на вывод, сконфигурировать ее как ШИМ, настроить предделители (частотоа шим. делителями выбирается частота относительно тактовой частоты МК)
и настроить скважность. (которую впоследствии можно изменять) но скважность указывается не в процентах, а числом в регистре. количество бит, отвечающих за скважность может быть разным. чем больше, тем точнее можно указать скважность...
вообщем ллучше конечно аппаратный ШИМ) гемору меньше) открыл ща исзодник свой сам нефега не разберусь, "комменты жгут"(c)

но работает все норм)