Скачал руководство по ШИМ
>К примеру, возьмем частоту импульсов около 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;
}
Программа управления моим проектом прилагается, если кто-то сможет приписать к ней шим по вышеприведенному алгоритму, будет не плохо... Просто я пока не волшебник, а просто учусь...