Цель этого этапа работы состоит в том, чтобы окончательно выбрать и зафиксировать те инструкции операций и переходов, которые во взаимодействии обеспечат правильность функционирования алгоритма, решающего поставленную задачу. Для чёткого и безошибочного выполнения этой работы выбор инструкции делается для каждого элемента графического алгоритма с учётом его связей и фиксируется рядом в поле комментария, как показано на рисунке 7.8.
Выполнение этой работы начинается с выбора инструкций для операций. Порядок написания операндов x и y, приведенный в списке команд, и указанные там ограничения на использование регистров в качестве операндов x и y должны соблюдаться. При сомнениях в работоспособности выбираемой инструкции могут потребоваться создание условий и предварительная проверка инструкции в среде VisualDSP++.
Для операций ввода/вывода указываются имена портов, с которыми производится обмен данными. Вопросы управления портами: присвоение адресов и дешифрация управляющих сигналов – решаются позже. (п. 8.5)
После выбора инструкций для операций производится выбор инструкций для переходов. Выполнение каждой операции сопровождается переходом к очередному адресу. Если операция условная, то по “да” операция выполняется, а по “нет” вместо неё выполняется пустая операция. Для изменения естественного порядка выполнения команд применяется команда перехода JUMP. Команда условного перехода IF … JUMP позволяет организовать разветвление. При невыполнении условия (по “нет”) происходит переход к очередной команде, а при выполнении условия (по “да”) происходит переход к инструкции, отмеченной меткой. Если метка расположена позже, то произойдёт обход ветви с инструкциями. Если метка расположена раньше, то произойдет переход к повторному выполнению ветви с инструкциями.
Для организации разветвления необходим код условия, который должен быть выработан в предшествующей команде. Признаки вырабатываются, в основном, в АЛУ. Некоторые признаки можно возобновить командой PASS.
Для организации цикла, как правило, используется инструкция DO…
Для выполнения остановки удобна инструкция IDLE, выполняющая безусловный переход к себе самой. Выход из состояния остановки возможен только по прерыванию.
Для организации циклического выполнения программы с определённым периодом используют прерывания от таймера. На рисунке 8.1 показана структура программы, имеющей циклы с тактовой частотой и частотой дискретизации.
Параметры таймера задают период более высокой из двух частот (fД), в k раз более низкая частота работы внешнего цикла (FТ) создаётся за счёт повторения внутреннего цикла k=fД/FТ раз. На рисунке показаны места расположения подпрограмм, взаимодействие которых обеспечивает работу устройства и одна из которых разрабатывается в КП. Структура рисунка 7.9 справедлива и для передатчика, и для приёмника. Нужно лишь расставить соответствующие имена подпрограмм… Для вызова подпрограммы используют инструкцию CALL, возврат из подпрограммы обеспечивает инструкция RTS.
Рисунок 8.1 — Получение частоты дискретизации fД и тактовой частоты FТ c использованием прерываний от таймера
|
Параметры таймера задают период более высокой из двух частот (fД), в k раз более низкая частота работы внешнего цикла (FТ) создаётся за счёт повторения внутреннего цикла k=fД/FТ раз. На рисунке показаны места расположения подпрограмм, взаимодействие которых обеспечивает работу устройства и одна из которых разрабатывается в КП. Структура рисунка 7.9 справедлива и для передатчика, и для приёмника. Нужно лишь расставить соответствующие имена подпрограмм… Для вызова подпрограммы используют инструкцию CALL, возврат из подпрограммы обеспечивает инструкция RTS.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.