Работа с таймером и обработка прерываний. Регистры и инструкции управления таймером и прерываниями, страница 3

5. Указания к работе в лаборатории

5.1. Программа состоит из двух модулей:  программы gener.dsp и подпрограммы sine.dsp.

    Скопируйте из папки Лр6 в Ваш рабочий каталог папку Gen_Sine c файлами .asm, .ldf  и .dat. ( файл sine.asm лучше взять из прошлой работы – он отлажен ). 

5.2. Запустите программу VisualDSP++. Проделайте все этапы создания нового проекта с именем gen_sine.prj и исполняемого файла .dxe для программы, состоящей из двух модулей .asm и файлов .ldf и .dat. Загрузите исполняемый файл gen_sine.dxe.  

5.3. При обследовании программы с прерываниями в пошаговом режиме следует использовать IREQ - регистр запросов прерывания. Это не регистр процессора, а регистр имитатора; он показывает, какие прерывания ожидаются, и обеспечивает удобства, позволяя вызвать возникновение прерывания и выйти из состояния ожидания прерывания (IDLE). Разряды IREQ соответствуют разрядам  регистра IMASK процессора.

5.4. Обратите внимание на очерёдность выполнения инструкций программы в связи с возникновением и обработкой прерываний, а также на роль инструкции IDLE. Отобразите стрелками очерёдность выполнения инструкций  в тексте программы или на схеме алгоритма.

5.5. Установите контрольную точку на инструкции вывода отсчёта и, производя запуски имитатора, фиксируйте каждый раз число циклов в окне Register / Program Control. Период прерывания равен разности числа циклов между вырабатываемыми отсчётами.  Убедитесь в соответствии периода заданной частоте генерации.??

5.6. Убрав контрольную точку, можно запустить программу в режиме прогона. Остановка произойдёт по команде Halt. Чтобы наблюдать последовательность выходных отсчётов, можно использовать формирование в памяти массива выходных данных dm_y. Соответствующие инструкции в программе имеются. Чтобы вывести на экран область памяти с массивом,  имеющим имя,  следует,  находясь в окне этой памяти, вызвать меню, дать команду GoTo, выбрать имя массива и выбрать дробный формат.

5.7. Создайте график зависимости y(n), пользуясь указаниями раздела 14.2. 

5.8. После демонстрации преподавателю результатов работы следует закрыть проект Gen_Sine командой Project/Close и закрыть программу VisualDSP++. Папку Gen_Sine из своей рабочей области удалить.

6. Содержание отчёта

6.1. Цель работы.

6.2. Графический алгоритм программы  gener.asm.

6.3. Расчёт параметров таймера для формирования  заданной частоты.

6.4. Очерёдность выполнения строк программы в связи с возникновением и обработкой прерываний показать стрелками.

6.5. Измеренное значение периода следования отсчётов.

6.6. Полученные результаты работы программы (таблица и график).

7. Контрольные вопросы

7.1. Расскажите о блоке таймера, его функциональном назначении и внутренней структуре.

7.2. Рассчитайте максимальный временной интервал, который можно задать с помощью таймера при тактовой частоте ADSP-2101   fCLKIN = 10 Мгц.

7.3. Как экспериментально проверить период прерываний от таймера при выполнении программы в имитаторе, если выражать его в циклах процессора?

7.4. Опишите принцип работы таймера и роль таймера в работе программы gener.asm.

7.5. Каковы особенности проверки программы в пошаговом режиме, если в ней используются прерывания?

7.6. Какие инструкции и директивы программы и как влияют на частоту генерируемой синусоиды?

7.7. Опишите последовательность выполнения инструкций в программе, использующей прерывания.

7.8. Каковы роль и особенности выполнения и использования инструкции IDLE?

7.9. Изобразите графический алгоритм программы, использующей прерывание.  Расскажите о её работе.