Помогите плиз разобраться с таймерами
Необходимо что бы Т0 и Т1 работали на переполнение с частотой ЦПУ (это не надо объяснять), а вот Т2 от часового кварца
Подключаю часовой кварц к PC6, PC7 (ATmega16, 32), а инициализация будет, следующей?:
Код
#define TIMER_CLK_DIV8 0x02 ///< Timer clocked at 32.768KHz/8
#define TIMER_PRESCALE_MASK 0x07 ///< Timer Prescaler Bit-Mask
#define TIMER2OVERFLOW_INT 5
volatile unsigned long Timer2Reg0;
void timer2Init(void)
{
// initialize timer 2
outb(TCCR2, (inb(TCCR2) & ~TIMER_PRESCALE_MASK) | TIMER_CLK_DIV8); // count 32.768KHz/8
outb(TCNT2, 0); // reset TCNT2
sbi(TIMSK, TOIE2); // enable TCNT2 overflow
sbi(ASSR, AS2); // switch to asynchronous input (32KHz crystal)
Timer2Reg0 = 0; // initialize time registers
// attach service to real-time clock interrupt
// rtcService() will be called at ((32768/8)/256) = 16Hz
timerAttach(TIMER2OVERFLOW_INT, rtcService);
sei();
}