Лабораторные работы по микропроцессорным системам. лб7.2Voroninaиспр1зам2es. Отчет по лабораторной работе 2 Atmel ч. 2 Воронин Д. А. Группа 16эпв Проверил Слядзевская К. П
Скачать 34.74 Kb.
|
НИЖЕГОРОДСКИЙ ГОСУДОРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМ. Р.Е. АЛЕКСЕЕВА Кафедра «Электропривод и автоматизация промышленных установок» Дисциплина «Микропроцессорные системы» Отчет по лабораторной работе №2 Atmel ч.2 Выполнил: Воронин Д.А. Группа 16-ЭПв Проверил: Слядзевская К.П. г. Нижний Новгород 2020 Цель работы: Определить время нажатого состояния кнопки SA3 с использованием таймера 1 (режим 1). Код программы: Где расчет выдержки времени до переполнения таймера 1 в режиме 1? 16-разрядный таймер Т1 работает в режиме Phase Correct PWM, 8 бит. по каналу А. Прерывание от таймера возникает через время, определяемое по формуле: где СLK – коэффициент делителя частоты, х – число, записанное в регистр сравнения канала А ОСR1A, тактовая частота кварцевого генератора,Гц . Примем СLK = 1024, ,для периода 1 сек получим значение: x= 0.5*1000000/2048 = 244 = F4h. Прерывание по переполнению длжно наступать каждые 0,5 сек поэтому загружать в ТС1 надо значение 256-244 = 12 = 0Сh. В обработчике прерывания будем перезагружать ТС1.? x фиксированное значение 255, значит Где расписаны форматы регистров TIMSK, TCCR1A, TCCR1B и их числовые значения? Для разрешения и запрета прерываний от таймеров/счетчиков в микроконтроллере ATtiny2313 используется специальный регистр ввода/вывода TIMSK, расположенный по адресу $39($59). Его формат показан на рисунке 5.16.
Рисунок 5.16 - Формат регистра TIMSK Бит 7 TOIE1. Разрешение прерывания по переполнению таймера Т1. Бит 6 OCIE1A. Разрешение прерывания по событию «Совпадение А» таймера Т1. Бит 5 OCIE1В. Разрешение прерывания по событию «Совпадение В» таймера Т1. Бит 3 TICIE1. Разрешение прерывания по событию «Захват» таймера Т1. Бит 2 OCIE0B. Разрешение прерывания по событию «Совпадение В» таймера Т0. Бит 1 TOIE0. Разрешение прерывания по переполнению таймера Т0. Бит 0 OCIE0A. Разрешение прерывания по событию «Совпадение А» таймера Т0. Где численные значения битов TIMSK? Форматы регистров управления таймером Т1 TCCR1A, TCCR1B и TCCR1C показаны на рисунках 5.20, 5.21 и 5.22 соответственно.
Рисунок 5.20 – Формат регистра TCCR1А
Рисунок 5.21 – Формат регистра TCCR1B
Рисунок 5.22 – Формат регистра TCCR1С Биты COM1A1:COM1A0 и COM1В1:COM1В0 определяют состояние выводов OC1A и OC1B при наступлении события «Совпадение». Влияние этих битов на поведение выводов зависит от выбранного режима работы таймера. Биты WGM13:WGM10 определяют режим работы таймера Т1 согласно таблице 5.15. Таблица 5.15 – Выбор режимов работы таймера Т1
Таблица 5.10 – Выбор источника тактового сигнала Т1
Для выбора режима работы Т1 в регистр TCCR1A записываем значение
режим 1 - Phase Correct PWM, 8 бит а в TCCR1B
В качестве допуска к лабораторной работе в отчете привести временную диаграмму работы заданного таймера в соответствующем режиме и ее описание. При описании ответить на следующие вопросы: Где нарисована временная диаграмма таймера 1 в режиме 1? Когда содержимое счетного регистра таймера увеличивается на единицу? КОГДА ПРИХОДИТ ИМПУЛЬС С ПРЕДДЕЛИТЕЛЯ ТАКТОВОЙ ЧАСТОТЫ. До какого значения идет счет и когда какой флаг прерывания от таймера устанавливается? Счет в режиме 1 идет до FFh, а потом до … . Флаг переполнения … устанавливается в 1 когда? Частота работы равна 1МГц. .include "tn2313def.inc" .org $0 rjmp RESET ; Reset Handler nop; rjmp INT0 ; External Interrupt0 Handler nop; rjmp INT1 ; External Interrupt1 Handler nop; rjmp TIM1_CAPT ; Timer1 Capture Handler nop; rjmp TIM1_COMPA ; Timer1 CompareA Handler rjmp TIM1_OVF ; Timer1 Overflow Handler nop; rjmp TIM0_OVF ; Timer0 Overflow Handler nop; rjmp USART0_RXC ; USART0 RX Complete Handler nop; rjmp USART0_DRE ; USART0,UDR Empty Handler nop; rjmp USART0_TXC ; USART0 TX Complete Handler nop; rjmp ANA_COMP ; Analog Comparator Handler nop; rjmp PCINT ; Pin Change Interrupt nop; rjmp TIMER1_COMPB ; Timer1 Compare B Handler nop; rjmp TIMER0_COMPA ; Timer0 Compare A Handler nop; rjmp TIMER0_COMPB ; Timer0 Compare B Handler nop; rjmp USI_START ; USI Start Handler nop; rjmp USI_OVERFLOW ; USI Overflow Handler nop; rjmp EE_READY ; EEPROM Ready Handler nop; rjmp WDT_OVERFLOW ; Watchdog Overflow Handler ;---------------------------------------------------------------- .org $13 RESET: ldi r16, low(RAMEND); Main program start out SPL,r16 ;Set Stack Pointer to top of RAM ser r16; настройка портов B на вывод и D наввод out DDRB,r16 out PORTD,r16 Нет настройки порта D на ввод – ПО УМОЛЧАНИЮ ВСЕ ПОРТЫ НАСТРРОЕНЫ НА ВВОД : DDRD=0 ;out PORTD,r16 – ВКЛЮЧАЕТ ПОДТЯГИВАЮЩИЕ РЕЗИСТОРЫ НА ВСЕМ ПОРТУ = ЭТО И ЕСТЬ ВВОД clr r19 clr r16; out DDRD,r16 ldi r16,(1< out TCCR1A,r16 ldi r16,(1< out TIMSK,r16 sei;разрешить все прерывания ;-------------------------------------------------------------------------------- M1: sbic PIND,2;если кнопка нажата? rjmp M1; rcall wait;Вставить программную выдержку для избавления от дребезга clr r19 ldi r16,(1< out TCCR1B,r16 M11: sbis PIND,2;если кнопка отжата rjmp M11; rcall wait;Вставить программную выдержку для избавления от дребезга clr r16 out TCCR1B,r16;останов ТС1 out PORTB,r19;выводим результат rjmp M1 ;----------------------------------------------------------- TIM1_OVF:;обработчик прерываний inc r19;инкремент счетчика секунд out_loop:;выход из прерывания reti wait: ldi r18,$40 w01: dec r18 brne w01 ret |