Скачал руководство по ШИМ
>К примеру, возьмем частоту импульсов около 200Гц, а скважность >импульсов будем задавать с интервалом 10 процентов (т.е. 10 >ступеней регулирования). В таком случае частота прерываний >таймера должна быть около 2кГц. При тактовой частоте контроллера >4МГц требуемую частоту прерываний можно получить с помощью 8->разрядного таймера, который обязательно есть в любом контроллере >AVR, установив коэффициент деления частоты на его входе равным >8 (т. е. 400000/8/256 = 1,95кГц). 
Как можно реализовать эти функции в программе?
>Если обозначить линию как OUT, текущее значение времени как >pwm_t, а заданное значение скважности как pwm_ch, то логика >программы будет такой: 
Подпрограмма обработки прерывания {
	если (pwm_t = 10) pwm_t = 0;
	если (pwm_t = 0) OUT = 1;
	если (pwm_t  >=  pwm_ch) OUT = 0;
	pwm_t = pwm_t + 1;
}
Программа управления моим проектом прилагается, если кто-то сможет приписать к ней шим по вышеприведенному алгоритму,  будет не плохо... Просто я пока не волшебник, а просто учусь...
			
				

 
 

