Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
228.doc
Скачиваний:
5
Добавлен:
30.04.2022
Размер:
1.41 Mб
Скачать

2. Порядок выполнения работы Контрольные вопросы по допуску к работе

  1. Объясните механизм создания временной задержки без помощи таймера, известный вам из предыдущей лабораторной работы.

  2. Организация таймеров МК AVR. Их функции и возможности использования.

  3. Конфигурирование таймеров и управление ими.

  4. Регистр состояния (флагов) таймера Т1, значение его битов.

  5. Какие способы можно использовать для получения меток времени от таймера?

  6. Как управлять временем задержки?

  7. Какие способы можно использовать для организации выполнения заданной операции по сигналу таймера?

2.1. Предварительное задание

2.1.1. Изучите сведения о таймерах МК и их регистрах. В случае надобности используйте файлы учебных материалов и лекции.

2.1.2. Изучите рабочее задание и подготовьтесь к его выполнению.

2.2. Рабочее задание

  1. Откройте АВ, загрузите ваш проект LR14_3 и сохраните его как LR15_1.

  2. Переработайте свой алгоритм, применив таймер Т1 вместо цикла «Пауза», в порядке, излагаемом ниже, причем для формирования задержки используйте контроль за появлением события «Переполнение счетного регистра» по состоянию флага в регистре событий. Введите в алгоритм сеттер таймера Т1, откройте его окно, настройте на максимальную доступную частоту счета. Добавьте в этап инициализации обнуление регистра событий. В циклическую часть алгоритма добавьте внутренний цикл ожидания появления соответствующего флага события (см. табл. 15.3), а затем установку этого флага в исходное положение (обратите внимание на необходимое для этого значение флага!). Поставьте на последней строке точку останова.

  3. Запустите эмуляцию программы, откройте окна процессора, порта, таймера (прерываний), времени процесса (#0). Проверьте работу алгоритма. Если нет ошибок, запишите в отчет время одного цикла. Перезапишите алгоритм под тем же именем LR15_1.

  4. Доработайте алгоритм, пользуясь «Указаниями…», с тем, чтобы задавать численное значение времени задержки от таймера путем начальной загрузки счетного регистра. Величину xxxx выберите так, чтобы длительность задержки существенно отличалась от результата в п.2. Проверьте работу алгоритма, запишите в отчет значение xxxx и время одного цикла. Если нет ошибок, запишите алгоритм под именем LR15_2.

  5. Переработайте алгоритм LR15_1, используя не переполнение, а регистр совпадения выхода A. Пользуясь «Указаниями…», перенастройте сеттер Т1. Добавьте в этап инициализации установку регистра совпадений на число xxxx. Не забудьте также заменить в условном переходе имя бита события. Вывод сигнала совпадения на внешний вывод не программируйте.

  6. Проверьте работу алгоритма, запишите в отчет значение xxxx и время одного цикла. Если нет ошибок, запишите алгоритм под именем LR15_3. Определите основной недостаток алгоритмов LR15_1… LR15_3 с точки зрения загрузки процессора.

  7. Переработайте алгоритм LR15_3 в порядке, излагаемом ниже, используя механизм прерываний, описанный выше, включая настройку маски, причем с использованием режима совпадений. Поскольку в алгоритме нет других задач, кроме пересылки и задержки, в условном переходе используйте циклическую проверку какого-либо бита, не связанного с таймером (например, бита Т регистра состояния процессора), на одно из его значений. Перед циклом задайте установку этого бита в противоположное значение, а в подпрограмме обслуживания прерывания – установку в состояние, выводящее программу из ожидания. Контрольную точку установите на выходе из прерывания.

  8. Проведите контрольный логический анализ алгоритма, опробуйте его работу, устраните ошибки, запишите в отчет значение xxxx и время одного цикла. Оцените принципиальные преимущества механизма прерываний и его недостатки. Если нет ошибок, запишите алгоритм под именем LR15_4.

  9. Для того, чтобы в основной программе на время ожидания прерывания могли выполняться другие действия, следует операции смещения единицы на выводах порта включить в подпрограмму обработки прерываний от таймера (без зацикливания и условного перехода). Переработайте таким путем алгоритм LR15_4. Учтите, что основная программа должна сохранять вид цикла, а поскольку в алгоритме нет других задач, кроме пересылки и задержки, то включите в неё только цикл с пустой операцией. Останов установите на выходе из прерывания от таймера, выполните симуляцию и запишите в отчет время одного цикла. Перезапишите алгоритм как LR15_5.

  10. Составьте отчет по перечисленным выше пунктам, включая скриншоты алгоритмов и экранов эмуляции. Выделите в пунктах отчета полученные навыки составления алгоритмов и навыки пользования программой, запишите отчет в файл под именем LR15 в той же папке, что и алгоритмы.

  11. Покажите результаты преподавателю, ответьте на его вопросы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]