[an error occurred while processing this directive]
|
Вообщем ситуация такая. в таймере 0 есть регистр сравнения, заношу в регистр сравнения значение, наример АА. это делается для того чтобы на выходе получить напряжения 10 В, но на выходе я получаю 15 В, а если не использовать таймер то на выходе получается 30В, ситуация такая то, что не в зависимости от того, что я помещу в регистр сравнения
он мне будет всегда выдавать 15 В. такое ощущение, что таймер не сравнивает с регистром сравнения. Вот код программы:
void timer0_init(void)
{
TCNT0 = 0x00; // set count value
OCR0= 0xAA;
TIMSK= 0x03;
TIFR=0x03;
TCCR0 = 0x01; // start timer
}
void timer0_over(void)
{
PORTC=0x00;
}
void timer0_comp(void)
{
if (Device.ScanState == 0x02) // Rotate Left
{
PORTC=0x10;
}
if (Device.ScanState == 0x03) // Rotate Right
{
PORTC=0x01;
}
}
void timer0_stop(void)
{
PORTC=0x00;
TCCR0=0x00;
}
SIGNAL(SIG_OVERFLOW0)
{
timer0_over();
}
SIGNAL(SIG_OUTPUT_COMPARE0)
{
timer0_comp();
}
E-mail: info@telesys.ru