Доброго времени суток. Пробовал сделать плавную регуляцию частоты на МК mega8 таймером T1. Включил режим СТС, но почему-то меняется только длительность сигнала, частота не меняется. Читал Белова, он с помощью записи различных значений в регистр сравнения меняет частоту, также почитал тут
http://www.atmega8.ru/wiki/view/doc.24.html там пишут что "Если CTC1=1, то таймер возвращается в состояние 0x0000 по импульсу, следующему после совпадения счётчика и регистра сравнения OCR1A"- следовательно чем меньше значение в OCR1A, тем больше частота, или я что то не так понимаю?
#include <mega8.h
#include <delay.h>
char pwm=0;
voi
{
PORTB=0x30;
DDRB=0x2;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
TCCR1A=0x83;
TCCR1B=0xC;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
TIMSK=0x00;
while (1)
{
if(PINB.4==0)
{
while(PINB.4==0){delay_ms(10);}
pwm=pwm+1;
if(pwm>1000){pwm=1000;};
}
if(PINB.5==0)
{
while(PINB.5==0){delay_ms(10);}
pwm=pwm-1;
if(pwm<2){pwm=1;};
}
OCR1A=pwm;
}
}