16-разр. таймер-счетчик 1: ////////////////////////////////////////////////////////////////////////////////////////////////////////// Pежим быстрая ШИМ, Верхний предел счёта ICR1, Установка флага TOV1 на на вершине счета: TCCR1A=0b10100010; //COM1A1-COM1A0-COM1B1-COM1B0-0-0-WGM11-WGM10// //COM1A1>управление вывод OC1A //COM1B1>управление вывод OC1B //WGM11-режим //WGM10-режим TCCR1B=0b00011011; // 488,28125 Hz -выход //0-0-0-WGM13-WGM12-CS12-CS11-CS10// //WGM13-режим //WGM12-режим //CS12-CS11-CS10 -предделитель и режим синхронизации: предделитель таймер-счетчик 1: //////////////////////////////////////////////////////////////////////////////////////////// // 000: Нет синхронизации. Таймер-счётчик остановлен. // 001: 1 МГц/1=1.000.000 Hz /32дел = 31250 Hz -выход // 010: 1 МГц/8=125.000 Hz /32дел = 3906,25 Hz -выход // 011: 1 МГц/64=15.625 Hz /32дел = 488,28125 Hz -выход // 100: 1 МГц/256=3.906,25 Hz /32дел = 122,070... Hz -выход // 101: 1 МГц/1024=976,5625 Hz /32дел = 30,517... Hz -выход // 110: внешняя синхронизация (вывод T1). Сихронизация по падающему фронту. // 111: внешняя синхронизация (вывод T1). Сихронизация по нарастающему фронту. /////////////////////////////////////////////////////////////////////////////////////////// TCNT1H=0b00000000; // Регистр 16-разр. таймер-счетчик 1 TCNT1L=0b00000000; // ICR1H=0b00000000; //Регистр захвата (ICR1) ICR1L=0b00011111; // верхний предел счета 00011111 - 31 дел OCR1AH=0b00000000; //1-й регистр порога сравнения (OCR) OCR1AL=0b00000000; //1-й регистр порога сравнения (OCR) OCR1BH=0b00000000; //2-й регистр порога сравнения (OCR) OCR1BL=0b00000000; //2-й регистр порога сравнения (OCR) //TIFR... флаги... //TIFR|=0b00100000; // сброс флага ICF1 //while (!(TIFR & 0b00100000)); // ждём флаг ICF1 - верхний предел счета ICR1. //TIFR|=0b00010000; // сброс флага OCF1A //while (!(TIFR & 0b00010000)); // ждём флаг OCF1A - совпадения TCNT1 и OCR1A. //TIFR|=0b00001000; // сброс флага OCF1B //while (!(TIFR & 0b00001000)); // ждём флаг OCF1B - совпадения TCNT1 и OCR1B. while (1) { };