Цитата(Dim_ON @ Jan 4 2008, 20:59)

Помогите плиз разобраться с таймерами
Необходимо что бы Т0 и Т1 работали на переполнение с частотой ЦПУ (это не надо объяснять), а вот Т2 от часового кварца
Подключаю часовой кварц к PC6, PC7 (ATmega16, 32), а инициализация будет, следующей?:
Разрешите приведу код из doc2505 небольшими изменениями для иициализации часового кварца
Код
void init_Ex3(void)
{
ASSR= 1<<AS2; // Enable asynchronous
// mode
// Clear timer on compare match / Timer Clock =
// system clock / 1024
TCCR2 = (1<<CTC2)|(1<<CS22)|(1<<CS21)|(1<<CS20);
TIFR= 1<<OCF2; // Clear OCF2/ Clear
// pending interrupts
TIMSK= 1<<OCIE2; // Enable Timer2 Output
// Compare Match Interrupt
OCR2= 31; // Set Output Compare
// Value to 32
DDRB= 0xFF; // Set Port B as output
while (ASSR&(1<<OCR2UB)); // Wait for registers to update
}
В этом случае, прерывание
по сравнению таймера №2 (SIG_OUTPUT_COMPARE2) будет вызываться раз в секунду.
Хочу заметить, что в документации для регистра OCR2 задано неверное значение, у них вместо 31 написано 32.