Показать сообщение отдельно
Непрочитано 21.04.2013, 22:42  
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: АЦП на Атмега8 и УАРТ - помогите

Программный шим - это просто. Для этого нужен 1 аппаратный счётчик. На нём можно построить хоть сотню шимов.

PHP код:

char    cnt_1
;
char    wm_1;

interrupt [TIM1_COMPAvoid timer1_compa_isr(void)
{
cnt_1++;
if(
cnt_1 › 99)      cnt_1 0;
if(
cnt_1 ‹ pwm_1)   PORTD.1 1;
else                
PORTD.1 0;  

В переменную pwm_1 заносим нужную скважность (в процентах).
Частота шим будет в 100 раз ниже частоты ссрабатывания таймера.

Для точных интервалов надо использовать режим CTC таймеров (сброс при совпадении).
Godzilla82 вне форума