Московский государственный технический университет им. Н.Э. Баумана Факультет информатики и систем управления Автоматизированные системы обработки информации и управления Адейкин С. Романов А. Романов П. Справочник к лабораторным работам «Введение в программирование микроконтроллеров AVR» Москва 2010г. Описание выводов микроконтроллера ATmeag16 Обозначение XTAL1 XTAL2 RESET Номер вывода 13 12 9 Тип I O I Описание Вход тактового генератора Выход тактового генератора Вход сброса. При удержании на входе НИЗКОГО ровня в течении 50 нс выполняется сброс устройства AREF 32 P Вход опорного напряжения для АЦП AGND 31 P Общий вывод (аналоговый) AVcc 30 P Вывод источника питания АЦП GND 11 P Общий вывод Vcc 10 P Вывод источника питания Порт А. 8-разрядный двунаправленный порт ввода/вывода с внутренними подтягивающими резисторами PA0(ADC0) 40 I/O A0 (Вход АЦП) PA1(ADC1) 38 I/O A1 (Вход АЦП) PA2(ADC2) 38 I/O A2 (Вход АЦП) PA3(ADC3) 37 I/O A3 (Вход АЦП) PA4(ADC4) 36 I/O A4 (Вход АЦП) PA5(ADC5) 35 I/O A5 (Вход АЦП) PA6(ADC6) 34 I/O A6 (Вход АЦП) PA7(ADC7) 33 I/O A7 (Вход АЦП) Порт А. 8-разрядный двунаправленный порт ввода/вывода с внутренними подтягивающими резисторами PB0(T0/XCK) 1 I/O B0(Вход внешнего тактового сигнала таймера/счётчика Т0/Вход/выход внешнего тактового сигнала USART) PB1(T1) 2 I/O B1(Вход внешнего тактового сигнала таймера/счётчика Т1) PB2(AIN0/INT2) 3 I/O B2(Положительный вход компаратора/Вход внешнего прерывания) PB3(AIN1/OC0) 4 I/O B3(Отрицательный вход компаратора/Выход таймера/счётчика Т0 (Режимы Compare, PWM)) PB4(SS) 5 I/O B4(Выбор Slave-устройства на шине SPI) PB5(MOSI) 6 I/O B5(Выход (Master) или вход (Slave) данных модуля SPI) PB6(MISO) 7 I/O B6(Вход (Master) или выход (Slave) данных модуля SPI) PB7(SCK) 8 I/O B7(Выход (Master) или вход (Slave) тактового сигнала модуля SPI) Порт С. 8-разрядный двунаправленный порт ввода/вывода с внутренними подтягивающими резисторами PC0 (SCL) 22 I/O C0(Тактовый сигнал модуля TWI) PC1 (SDA) 23 I/O C1(Линия данных модуля TWI) PC2 (TCK) 24 I/O C2(Тактовый сигнал JTAG) PC3 (TMS) 25 I/O C3(Выбор режима JTAG) PC4 (TDO) 26 I/O C4(Выход данных JTAG) PC5 (TDI) 27 I/O C5(Вход данных JTAG) PC6 (TOSC1) 28 I/O C6(Выход для подключения резонатора к таймеру/счётчику T2) PC7 (TOSC2) 29 I/O C7(Вход для подключения резонатора к таймеру/счётчику T2) Порт С. 8-разрядный двунаправленный порт ввода/вывода с внутренними подтягивающими резисторами PD0(RXD) 14 I/O D0(Вход USART) PD1(TXD) 15 I/O D1(Выход USART) PD2(INT0) 16 I/O D2(Вход внешнего прерывания) PD3(INT1) 17 I/O D3(Выход внешнего прерывания) PD4(OC1B) 18 I/O D4(Выход В таймера/счётчика Т1 (Режимы Compare, PWM)) PD5(OC1A) 19 I/O D5(Выход А таймера/счётчика Т1 (Режимы Compare, PWM)) PD6(ICP) 20 I/O D6(Вход захвата таймера/счётчика Т1 (Capture)) PD7(OC2) 21 I/O D7(Выход таймера/счётчика Т2 (Режимы Compare, PWM)) Память Обобщённая карта памяти МК ATmega16 Память программ FLASH ОЗУ $000 32 регистра общего назначения F_END 64 регистра ввода/вывода 160 доп. Регистров ввода/вывода Внутреннее статическое ОЗУ $0000 $001F $0020 $005F $0060 S_END Память данных EEPROM $000 E_END Основные регистры Регистры общего назначения Регистр Адрес R0 … R13 … R26 $00 R27 R28 R29 R30 R31 $0D $1A, регистр X, мл. байт $1B, регистр X, ст. байт $1C, регистр Y, мл. байт $1D, регистр Y, ст. байт $1E, регистр Z, мл. байт $1F, регистр Z, ст. байт Регистры ввода/вывода Название SREG SPH SPL OCR0 Адрес $3F ($5F) $3E ($5E) $3D ($5D) $3C ($5C) GICR $3B ($5B) GIFR $3A ($5A) TIMSK $39 ($59) TIFR $38 ($58) TCCR0 $33 ($53) TCNT0 $32 ($52) TCCR1A $2F ($4F) TCCR1B $2E ($4E) TCNT1H $2D ($4D) TCNT1L $2C ($4C) Функция Регистр состояния Указатель стека, старший байт Указатель стека, младший байт Регистр совпадения таймера/счетчика T0 Общий регистр управления прерываниями Общий регистр флагов прерываний Регистр маски прерываний от таймеров/счетчиков Регистр флагов прерываний от таймеров/счетчиков Регистр управления таймером/счетчиком T0 Счетный регистр таймера/счетчика T0 Регистр управления A таймера/счетчика T1 Регистр управления B таймера/счетчика T1 Счетный регистр таймера/счетчика T1, старший байт Счетный регистр таймера/счетчика T1, младший байт OCR1AH $2B ($4B) OCR1AL $2A ($4A) OCR1BH $29 ($49) OCR1BL $28 ($48) ICR1H $27 ($47) ICR1L $26 ($46) TCCR2 $25 ($45) TCNT2 $24 ($44) OCR2 $23 ($43) UBRRH UCSRC $20 ($40) EEARH $1F ($3F) EEARL $1E ($3E) EEDR EECR PORTA DDRA $1D ($3D) $1C ($3C) $1B ($3B) $1A ($3A) PINA PORTB DDRB $19 ($39) $18 ($38) $17 ($37) PINB PORTC DDRC $16 ($36) $15 ($35) $14 ($34) PINC PORTD DDRD $13 ($33) $12 ($32) $11 ($31) PIND UDR $10 ($30) $0C ($2C) Регистр совпадения A таймера/счетчика T1, старший байт Регистр совпадения A таймера/счетчика T1, младший байт Регистр совпадения B таймера/счетчика T1, старший байт Регистр совпадения B таймера/счетчика T1, младший байт Регистр захвата таймера/счетчика T1, старший байт Регистр захвата таймера/счетчика T1, младший байт Регистр управления таймером/счетчиком T2 Счетный регистр таймера/счетчика T2 Регистр совпадения таймера/счетчика T2 Регистр скорости передачи USART, старший байт Регистр управления и состояния USART Регистр адреса EEPROM, старший байт Регистр адреса EEPROM, младший байт Регистр данных EEPROM Регистр управления EEPROM Регистр данных порта А Регистр направления данных порта А Выводы порта А Регистр данных порта B Регистр направления данных порта B Выводы порта B Регистр данных порта C Регистр направления данных порта C Выводы порта C Регистр данных порта D Регистр направления данных порта D Выводы порта D Регистр данных USART UCSRA $0B ($2B) Регистр управления и состояния A USART UCSRB $0A ($2A) Регистр управления и состояния B USART UBRRL $09 ($29) Регистр скорости передачи USART, младший байт ACSR $08 ($28) Регистр управления и состояния компаратора ADMUX $07 ($27) Регистр управления мультиплексором АЦП ADCSRA $06 ($26) ADCH $05 ($25) ADCL $04 ($24) Регистр управления и состояния АЦП Регистр данных АЦП, старший байт Регистр данных АЦП, младший байт Регистр SREG SREG - регистр статуса, размещен в пространстве I/O по адресу $3F ($5F) и его биты определяются как: 7 6 5 4 3 2 1 0 I T H S V N Z C Бит 7 - I: Global Interrupt Enable - Разрешение глобального прерывания. Бит разрешения глобального прерывания для разрешения прерывания должен быть установлен в состояние 1. Управление разрешением конкретного прерывания выполняется регистрами маски прерывания GIMSK и TIMSK. Если бит глобального прерывания очищен (в состоянии 0), то ни одно из разрешений конкретных прерываний, установленных в регистрах GIMSK и TIMSK, не действует. Бит I аппаратно очищается после прерывания и устанавливается для последующего разрешения глобального прерывания командой RETI. Бит 6 - T: Бит Copy Storage - Бит сохранения копии. Команды копирования бита BLD (Бит LoaD) и BST (Бит STore) используют бит T как бит источник и бит назначения при операциях с битами. Командой BST бит регистра регистрового файла копируется в бит T, командой BLD бит T копируется в регистр регистрового файла. Бит 5 - H: Half Carry Flag - Флаг полупереноса Флаг полупереноса указывает на полуперенос в ряде арифметических операций. Более подробная информация приведена в описании системы команд. Бит 4 - S: Sign Бит, S = N V - Бит знака Бит S всегда находится в состоянии, определяемом логическим исключающим ИЛИ (exclusive OR) между флагом отрицательного значения N и дополнением до двух флага переполнения V. Более подробная информация приведена в описании системы команд. Бит 3 - V: Two’s Complement Overflow Flag - Дополнение до двух флага переполнения Дополнение до двух флага V поддерживает арифметику дополнения до двух. Более подробная информация приведена в описании системы команд. Бит 2 - N: Negative Flag - Флаг отрицательного значения Флаг отрицательного значения N указывает на отрицательный результат ряда арифметических и логических операций. Более подробная информация приведена в описании системы команд. Бит 1 - Z: Zero Flag - Флаг нулевого значения Флаг нулевого значения Z указывает на нулевой результат ряда арифметических и логических операций. Более подробная информация приведена в описании системы команд. Бит 0 - C: Carry Flag - Флаг переноса Флаг переноса C указывает на перенос в арифметических и логических операциях. Более подробная информация приведена в описании системы команд. Система команд Арифметические операции Мнемоника Описание ADC Rn,Rk ADD Rn,Rk ADIW Rn,K SUB Rn,Rk SUBI Rn,K SBCI Rn,K SBC Rn,Rk SBIW Rn,K COM Rn NEG Rn INC Rn DEC Rn CP Rn,Rk CPI Rn,K CPC Rn,Rk Сложение c переносом Сложение без переноса Сложение с константой Вычитание без заема Вычитание константы без заема Вычитание константы с заемом Вычитание c заемом Вычитание константы Дополнение до 1 Дополнение до 2 Увеличение на 1 Уменьшение на 1 Сравнение регистров Сравнение регистра с константой Сравнение регистров с заемом Логические операции Мнемоника Описание AND Rn,Rk ANDI Rn,K OR Rn,Rk ORI Rn,K EOR Rn,Rk CBR Rn,K SBR Rn,K CLR Rn SER Rn TST Rn Логическое "И" Логическое "И" с константой Логическое "ИЛИ" Логическое "ИЛИ" с константой "Исключающее ИЛИ" Очистка битов Установка битов Очистка регистра Установка регистра Проверка на 0 и минус Операция Изменяемые флаги Z, C, N, V, S, H Z, C, N, V, S, H Время исполнения (циклов) 1 1 (Rn+1):Rn <(Rn+1):Rn + K Rn <- Rn - Rk Rn <- Rn - K Z, C, N, V, S 2 Z, C, N, V, S, H Z, C, N, V, S, H 1 1 Rn <- Rn - K - C Z, C, N, V, S, H 1 Rn <- Rn - Rk - C Rn+1):Rn <(Rn+1):Rn - K Rn <- 0FFh - Rn Rn <- 0 - Rn Rn <- Rn + 1 Rn <- Rn - 1 Rn - Rk Rn - K Z, C, N, V, S, H Z, C, N, V, S 1 2 Z, C, N, V, S Z, C, N, V, S, H Z, N, V, S Z, N, V, S Z, C, N, V, S, H Z, C, N, V, S, H 1 1 1 1 1 1 Rn - Rk - C Z, C, N, V, S, H 1 Rn <- Rn + Rk + C Rn <- Rn + Rk Операция Rn <- Rn & Rk Rn <- Rn & K Изменяемые флаги Z, N, V, S Z, N, V, S Время исполнения (циклов) 1 1 Rn <- Rn | Rk Rn <- Rn | K Z, N, V, S Z, N, V, S 1 1 Rn <- Rn ^ Rk Rn <- Rn & (0FFh-K) Rn <- Rn | K Rn <- Rn ^ Rn Rn <- 0FFh Rn <- Rn & Rn Z, N, V, S Z, N, V, S 1 1 Z, N, V, S Z, N, V, S Z, N, V, S 1 1 1 1 Операции перехода Мнемоника Описание JMP K CALL K RJMP K RCALL K IJMP Абсолютный переход Абсолютный вызов Относительный переход Относительный вызов Косвенный переход ICALL Косвенный вызов EIJMP Косвенный переход EICALL Косвенный вызов RET RETI BREQ K Выход из процедуры Выход из процедуры прерывания Сравнить и пропустить, если равно Пропустить, если Rn(K) = 0 Пропустить, если Rn(K) = 1 Пропустить, если IR(K) = 0 Пропустить, если IR(K) = 1 Перейти, если SREG(b) = 1 Перейти, если SREG(b) = 0 Перейти, если Z = 1 BRNE K Перейти, если Z = 0 BRCC K Перейти, если C = 0 BRCS K Перейти, если C = 1 BRHC K Перейти, если H = 0 BRHS K Перейти, если H = 1 BRSH K Перейти, если больше или равно Перейти, если меньше CPSE Rn,Rk SBRC Rn,K SBRS Rn,K SBIC IR,K SBIS IR,K BRBS b,K BRBC b,K BRLO K BRPL K BRMI K Перейти, если больше или равно 0 Перейти, если меньше 0 BRTC K Перейти, если больше или равно (со знаком) Перейти, если меньше (со знаком) Перейти, если T = 0 BRTS K Перейти, если T = 1 BRGE K BRLT K Операция Изменяемые флаги PC <- K PC <- K PC <- PC + K + 1 PC <- PC + K + 1 PC(15:0) <- Z, PC(21:16) <- 0 PC(15:0) <- Z, PC(21:16) <- 0 PC(15:0) <- Z, PC(21:16) <- EIND PC(15:0) <- Z, PC(21:16) <- EIND PC <- STACK PC <- STACK - Время исполнения (циклов) 3 4 (5) 2 2 2 - 2 - 2 - 2 I 4 (5) 4 (5) if (Rn = Rk) PC <PC + 2 or 3 if (Rn(K) = 0) PC <- PC + 2 or 3 if (Rn(K) = 1) PC <- PC + 2 or 3 if (IR(K) = 0) PC <PC + 2 or 3 if (IR(K) = 1) PC <PC + 2 or 3 if (SREG(b) = 1) PC <- PC + K + 1 if (SREG(b) = 0) PC <- PC + K + 1 if (Z = 1) PC <- PC +K+1 if (Z = 0) PC <- PC +K+1 if (C = 0) PC <- PC +K+1 if (C = 1) PC <- PC +K+1 if (H = 0) PC <- PC +K+1 if (H = 1) PC <- PC +K+1 if (C = 0) PC <- PC +K+1 if (C = 1) PC <- PC +K+1 if (N = 0) PC <- PC +K+1 if (N = 1) PC <- PC +K+1 if (N + V = 0) PC <- PC + K + 1 if (N + V = 1) PC <- PC + K + 1 if (T = 0) PC <- PC +K+1 if (T = 1) PC <- PC +K+1 - 1/2/3 - 1/2/3 - 1/2/3 - 1/2/3 - 1/2/3 - 1/2 - 1/2 - 1/2 - 1/2 - 1/2 - 1/2 - 1/2 - 1/2 - 1/2 - 1/2 - 1/2 - 1/2 - 1/2 - 1/2 - 1/2 - 1/2 BRVC K Перейти, если V = 0 BRVS K Перейти, если V = 1 BRIE K Перейти, если I = 0 BRID K Перейти, если I = 1 Операции перемещения данных Мнемоника Описание MOV Rn,Rk MOVW Rn,Rk LD Rn, Ri LD Rn, Ri+ Копировать Rk в Rn Копировать регистровую пару Загрузить из памяти данных, используя индексный регистр LD Rn, -Ri LDD Rn, Ri + q LDI Rn,K LDS Rn,K LPM LPM Rn, Z LPM Rn, Z+ ELPM ELPM Rn, Z ELPM Rn, Z+ SPM STS K,Rn ST Ri, Rn ST Ri+, Rn Загрузить константу в регистр Загрузить в регистр из памяти данных Загрузить из памяти программ Загрузить в память программ Загрузить в память данных Загрузить в память данных, используя индексный регистр ST -Ri, Rn STD Ri + q, Rn IN Rn,I OUT I,Rn PUSH Rn POP Rn SWAP Rn Прочитать I/O-регистр I в Rn Записать Rn в I/O-регистр I Сохранить Rn в стеке Восстановить Rn из стека Обмен тетрад в регистре if (V = 0) PC <- PC +K+1 if (V = 1) PC <- PC +K+1 if (I = 0) PC <- PC +K+1 if (I = 1) PC <- PC +K+1 - 1/2 - 1/2 - 1/2 - 1/2 Операция Изменяемые флаги Rn <- Rk Rn+1:Rn <Rk+1:Rk Rn <- (Ri) Rn <- (Ri), Ri <- Ri +1 Ri <- Ri - 1, Rn <(Ri) Rn <- (Ri + q) Rn <- K - Время исполнения (циклов) 1 1 - 2 2 - 2 - 2 1 Rn <- (K) - 2 R0 <- (Z) Rn <- (Z) Rn <- (Z), Z <- Z + 1 R0 <- (RAMPZ:Z) Rn <- (RAMPZ:Z) Rn <- (RAMPZ:Z), Z <- Z + 1 (Z) <- R1:R0 - 3 3 3 3 3 3 - 3 (K) <- Rn - 2 (Ri) <- Rn (Ri) <- Rn, Ri <- Ri +1 Ri <- Ri - 1, (Ri) <Rn (Ri + q) <- Rn Rn <- I - 2 2 - 2 - 2 1 I <- Rk - 1 STACK <- Rn Rn <- STACK Rn(0...3) <Rn(4...7), Rn(4...7) <- Rn(0...3) - 2 2 1 Битовые операции Мнемоника Описание LSL Rn Логический сдвиг влево LSR Rn Логический сдвиг вправо ROL Rn Сдвиг влево через перенос ROR Rn Сдвиг вправо через перенос ASR Rn Арифметический сдвиг вправо Установить бит в SREG Сбросить бит в SREG Сбросить флаг переноса Установить флаг переноса Сбросить флаг знака Установить флаг знака Сбросить флаг нуля Установить флаг нуля Сбросить флаг разрешения прерываний Установить флаг разрешения прерываний Сбросить флаг знака Установить флаг знака Сбросить флаг переполнения Установить флаг переполнения Сбросить флаг T Установить флаг T Сбросить флаг половинного переноса Установить флаг половинного переноса Сбросить бит в I/Oрегистре Установить бит в I/Oрегистре Загрузить флаг T битом из регистра Загрузить бит в регистре из флага T BSET b BCLR b CLC SEC CLN SEN CLZ SEZ CLI SEI CLS SES CLV SEV CLT SET CLH SEH CBI I,b SBI I,b BST Rn,b BLD Rn,b Операция Изменяемые флаги R(n+1) <- R(n), R(0) <- 0, C <R(7) R(n) <- R(n+1), R(7) <- 0, C <R(0) R(n+1) <- R(n), R(0) <- C, C <R(7) R(n) <- R(n+1), R(7) <- C, C <R(0) R(n) <- R(n+1), R(7) <- R(7) SREG(b) <- 1 SREG(b) <- 0 C <- 0 C <- 1 S, Z, C, N, V, H Время исполнения (циклов) 1 S, Z, C, N, V 1 S, Z, C, N, V, H 1 S, Z, C, N, V 1 Z, C, N, V 1 SREG(b) SREG(b) C C 1 1 1 1 N <- 0 N <- 1 Z <- 0 Z <- 1 I <- 0 N N Z Z I 1 1 1 1 1 I <- 1 I 1 S <- 0 S <- 1 V <- 0 S S V 1 1 1 V <- 1 V 1 T <- 0 T <- 1 H <- 0 T T H 1 1 1 H <- 1 H 1 I(b) <- 0 - 1 I(b) <- 1 - 1 I(b) <- 0 - 1 I(b) <- 1 - 1 Таблица векторов прерываний МК ATmega16 лица векторов прерываний модели ATmega16 № 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Адрес $0002 $0004 $0006 $0008 $000A $000C $000E $0010 $0012 $0014 $0016 $0018 $001A $001C $001E $0020 $0022 $0024 $0026 $0028 Источник INT0 INT1 TIMER2 COMP TIMER2 OVF TIMER1 CAPT TIMER1 COMPA TIMER1 COMPB TIMER1OVF TIMER0OVF SPI, STC USART,RXC USART,UDRE USART,TXC ADC EE_RDY ANA_COMP TWI INT2 TIMER0 COMP SPM_RDY Описание Внешнее прерывание 0 Внешнее прерывание 1 Совпадение таймера/счетчика Т2 Переполнение таймера/счетчика Т2 Захват таймера/счетчика Т1 Совпадение «А» таймера/счетчика Т1 Совпадение «В» таймера/счетчика Т1 Переполнение таймера/счетчика Т1 Переполнение таймера/счетчика Т0 Передача по SPI завершена USART, прием завершен Регистр данных USART пуст USART, передача завершена Преобразование АЦП завершено EEPROM, готово Аналоговый компаратор Прерывание от модуля TWI Внешнее прерывание 2 Совпадение таймера/счетчика Т0 Готовность SPM Если прерывания в работе микроконтроллера не предусматриваются, то на месте таблицы векторов прерываний может быть размещена часть основной программы. Управление таймерами Регистр TIMSK Название OCIE2 TOIE2 TICIE1 OCIE1A OCIE1A TOIE1 OCIE0 TOIE0 Бит 7 6 5 4 3 2 1 0 Описание флагов разрешения прерываний По событию «Совпадение» таймера-счетчика T2 По переполнению таймера-счетчика T2 По событию «Захват» таймера-счетчика T1 По событию «Совпадение А» таймера-счетчика T1 По событию «Совпадение В» таймера-счетчика T1 По переполнению таймера-счетчика T1 По событию «Совпадение» таймера-счетчика T0 По переполнению таймера-счетчика T0 Регистр TIFR Название OCF2 TOV2 ICF1 OCF1A OCF1B TOV1 OCF0 TOV0 Бит 7 6 5 4 3 2 1 0 Описание флагов прерываний По событию «Совпадение» таймера-счетчика T2 По переполнению таймера-счетчика T2 По событию «Захват» таймера-счетчика T1 По событию «Совпадение А» таймера-счетчика T1 По событию «Совпадение В» таймера-счетчика T1 По переполнению таймера-счетчика T1 По событию «Совпадение» таймера-счетчика T0 По переполнению таймера-счетчика T0 Регистр TCCR0(2) Бит Название 7 FOCх 6,3 CTCх, PWMх 5,4 COMх1, COMх0 2-0 CSх2… CSх0 Описание назначения Принудительное изменение состояния вывода OCх в режимах Normal и CTC (зависит от битов COMх0 и COMх1) Выбор режима работы таймера-счетчика Режим CTCх PWMх Описание режима работы 0 0 0 Normal (суммирующий счетчик) 1 0 1 Phase correct PWM 2 1 0 CTC (сброс при совпадении) 3 1 1 Fast PWM Режим работы блока сравнения. Определяет состояние вывода OC0 (ОС2) при наступлении события «Совпадение». Для режимов Normal и CTC доступны такие состояния COMх1 COMх0 Описание состояния вывода OCх 0 0 Таймер отключен от вывода OСх 0 1 Изменение на противоположное 1 0 Вывод сбрасывается в «0» 1 1 Вывод устанавливается в «1» Управление тактовым сигналом. Эти биты выбирают один из выходов предделителя для получения счетных импульсов, а также определяют старт и останов таймеров. Выбор источника тактового сигнала для таймеров Т0 и Т2 CSх2 Для таймера Т0 0 0 0 0 1 1 1 1 Для таймера Т2 0 0 CSх1 CSх0 Источник тактового сигнала 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 Таймер-счетчик Т0 остановлен Системный тактовый сигнал CLKsys CLKsys / 8 CLKsys / 64 CLKsys / 256 CLKsys / 1024 Внешний вывод Т0, счет по спаду импульса (1→0) Внешний вывод Т0, счет по фронту импульса (0→1) 0 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 Таймер-счетчик Т2 остановлен Системный тактовый сигнал CLKsys (при AS2=0) или Дополнительный кварцевый резонатор (при AS2=1) CLKsys / 8 (при AS2=0) или CLKosc / 8 (при AS2=1) CLKsys / 32 (при AS2=0) или CLKosc / 32 (при AS2=1) CLKsys / 64 (при AS2=0) или CLKosc / 64 (при AS2=1) CLKsys / 128 (при AS2=0) или CLKosc / 128 (при AS2=1) CLKsys / 256 (при AS2=0) или CLKosc / 256 (при AS2=1) CLKsys /1024 (при AS2=0) или CLKosc /1024 (при AS2=1) Настройка поведения вывода OC0 (OC2) в режиме FastPWM COMх1 0 0 1 COM0х0 0 1 0 1 1 Описание состояния вывода OC0 (ОС2) Таймер-счетчик Т0 (Т2) отключен от вывода OC0 (ОС2) Зарезервировано и не используется Вывод сбрасывается в «0» при достижении равенства регистров TCNTх и OCRх. Устанавливается в «1» при достижении TCNTх = 0x00 (неинвертированный ШИМ) Вывод устанавливается в «1» при достижении равенства регистров TCNTх и OCRх. Сбрасывается в «0» при достижении TCNTх = 0x00 (инвертированный ШИМ) Регистры TCCR1А и TCCR1B Принципы управления таймером Т1 через регистр TCCR1А Бит Название 7,6 COM1A1, COM1A0 5,4 COM1B1, COM1B0 3,2 FOC1A, FOC1B WGM1, WGM0 1,0 Описание назначения Режим работы блока сравнения А. Разряды определяют поведение вывода OC1A при наступлении события «Совпадение» в зависимости от режима работы таймера. Для режимов Normal и CTC доступны такие состояния COM1A1 COM1A0 Описание состояния вывода OC1A 0 0 Таймер отключен от вывода OC1A 0 1 Изменение на противоположное 1 0 Вывод сбрасывается в «0» 1 1 Вывод устанавливается в «1» Режим работы блока сравнения B. Определяет состояние вывода OC1B при наступлении события «Совпадение». Для режимов Normal и CTC доступны такие состояния COM1B1 COM1B0 Описание состояния вывода OC1B 0 0 Таймер отключен от вывода OC1B 0 1 Изменение на противоположное 1 0 Вывод сбрасывается в «0» 1 1 Вывод устанавливается в «1» Принудительное изменение состояния выводов OC1A и OC1B в режимах Normal и CTC (зависит от битов COMnxi) Режим работы таймера счетчика Т1. Используются совместно с битами WGM3, WGM2 регистра TCCR1B – см. табл. 27.8 Принципы управления таймером Т1 через регистр TCCR1B Бит 7 6 5 4,3 Название ICNC1 ICES1 – WGM3, WGM2 2…0 SC12… SC10 Описание назначения Управление схемой подавления помех блока захвата Выбор активного фронта сигнала захвата Не используется Режим работы таймера счетчика Т1. Используются совместно с битами WGM1, WGM0 регистра TCCR1А – см. табл. 3.11 Управление тактовым сигналом. Разряды определяют источник тактового сигнала для таймера Т1. Настройка соответствует табл.27.4 (как для таймера Т0). Выбор режима работы таймера Т1 WGM13 WGM12 WGM11 WGM10 Режим работы 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 Normal, 16-разрядный счет Phase correct PWM, 8-разрядный Phase correct PWM, 9-разрядный Phase correct PWM, 10-разрядный CTC (сброс при совпадении) Fast PWM, 8-разрядный Fast PWM, 9-разрядный Fast PWM, 10-разрядный Phase and Frequency Correct PWM Phase and Frequency Correct PWM Phase correct PWM Модуль счета $FFFF $00FF $01FF $03FF OCR1A $00FF $01FF $03FF ICR1 OCR1A ICR1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 Phase correct PWM CTC (сброс при совпадении) Зарезервировано Fast PWM Fast PWM OCR1A ICR1 – ICR1 OCR1A