Аппаратные таймеры
Автор: goldenfeyk • Декабрь 11, 2018 • Лабораторная работа • 686 Слов (3 Страниц) • 399 Просмотры
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
Федеральное государственное автономное образовательное учреждение высшего образования
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Институт – Энергетический
Направление – Электроэнергетика и электротехника
Кафедра – ЭПЭО
«Аппаратные таймеры»
Отчет по лабораторной работе по дисциплине
«Микропроцессорные средства и системы»
Исполнитель
Студент группы 5ГМ72 ___________________________ Казанцев К.А.
(подпись)
Руководитель
Ассистент ___________________________ Буньков Д. С.
(подпись)
Томск – 2018
Цель работы: Освоение принципов работы и настроек таймеров. Организация прерывания на аппаратном таймере.
Задание:
Часть 1:
1. Осуществить мигание светодиодом согласно варианту, используя прерывание на таймере (Вариант 2).
[pic 1]
Часть 2:
2. Организовать вашу функцию из ЛР№2, используя прерывание на таймере.
3. Проверить соответствие интервалов требуемым согласно заданию из ЛР№2.
4. Включить графики и написанные элементы кода с комментариями в отчет.
Код программы:
Часть 1:
Задание параметров таймера, необходимы для получения необходимой частоты прерывания:
htim3.Instance = TIM3;
htim3.Init.Prescaler = 3199;
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
htim3.Init.Period = 9999;
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
Осуществление миганием светодиода:
extern uint16_t set_1;
extern uint16_t set_2;
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) – функция прерывания
{
if (htim == &htim3)
{
HAL_GPIO_TogglePin (LD3_GPIO_Port, LD3_Pin); – функция смены выходного значения сигнала на светодиоде на противоположное
...