ПРАКТИЧЕСКАЯ РАБОТА №3
Тема: Таймеры. Цель: Научиться разрабатывать программы для МК, использующие таймеры. Задание 1 1.1. Разработайте программу для МК ATmega32, использующую прерывание по переполнению и прерывание по сравнению таймера-счетчика Timer0, работающего в нормальном режиме. Начальное значение счетного регистра таймера TCNT0 и значение регистра сравнения OCR0 установите в соответствии со значениями, приведенными в таблице 1, в соответствии с предложенным преподавателем вариантом. Таблица 1 – Варианты начальных значений регистра TCNT0 и значений регистра OCR0
Частота работы таймера должна равняться тактовой частоте контроллера и составлять 4МГц. Для конфигурирования контроллера воспользуйтесь генератором начального кода. Обратите внимание, что значения счетных регистров и регистров сравнения в генераторе начального кода задаются в шестнадцатеричной системе счисления. В обработчиках прерываний по переполнению (interrupt [TIM0_OVF] void timer0_ovf_isr(void)) и по сравнению (interrupt [TIM0_COMP] void timer0_comp_isr(void)) таймера Timer0 организуйте инвертирование уровней сигналов на ножках, выбранных из таблицы 2 в соответствии со своим вариантом. Таблица 2 – Варианты выводов
Опишите глобальную переменную типа char и в тело основной функции программы добавьте единственную строку, в которой этой переменной присваивалось бы значение счетного регистра таймера-счетчика Timer0. 1.2. В симуляторе VMLab разработайте проект, с помощью которого проверьте правильность работы написанной программы. Проект должен позволять просматривать уровни сигналов на двух выходах контроллера, указанных в таблице 2, и значение описанной в программе глобальной переменной. Проведите измерение периодов изменения сигналов. В отчет включите задание, текст программы, текст проекта в VMLab, диаграммы изменения напряжения на выводах контроллера, полученные в VMLab, измеренные значения периодов.
|