Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Пользователю -> Евстифеев А.В. -> "Микроконтроллеры семейства" -> 22

Микроконтроллеры семейства - Евстифеев А.В.

Евстифеев А.В. Микроконтроллеры семейства — Infineon, 2007. — 318 c.
Скачать (прямая ссылка): microkontrolleri2007.pdf
Предыдущая << 1 .. 16 17 18 19 20 21 < 22 > 23 24 25 26 27 28 .. 100 >> Следующая


С-Флаг V-флаг Величина ошибки вращения
О О Нет ошибки вращения
О 1 О< Ошибка вращения <1/2 LSB
1 О Ошибка вращения =1/2 LSB
1 1 Ошибка вращения >1/2 LSB

• Z-флаг: Z-флаг установлен в «1», если результатом операции в АЛУ является нулевая величина.

Z-флаг всегда устанавливается в «1» для сложения и вычитания with carry в том случае, когда одновременно Z-флаг уже содержит «1» и результат текущей операции в АЛУ тоже равен нулю. Этот механизм обеспечивает поддержку вычислений с большой точностью.

Для Boolean битовых операций только с одним операндом в Z-флаг помещается логическое отрицание изменяемого бита. Для Boolean битовых операций с двумя операндами в Z-флаг помещается результат логической операции NOR над двумя отмеченными битами.

• E-флаг: E-флаг может быть изменен командой, совершающей операцию в АЛУ или совершающей перемещение данных. E-флаг устанавливает «О» для тех операндов, которые не могут быть использованы при табличном поиске. Во всех других случаях Е-флаг устанавливается в зависимости от значения исходного операнда, иными словами по достижении конца поиска в таблице. Если значение исходного операнда команды равно минимальному отрицательному числу (8ОООН для слов данных или 8Он для байтов данных), Е-флаг устанавливается в «1».

• MULIP-флаг: MULIP-флаг аппаратно устанавливается в «1», при входе в подпрограмму обслуживания прерывания, в случае прерывания операции умножения или деления в АЛУ. В зависимости от состояния этого бита, микроконтроллер решает, продолжать или не продолжать умножение или деление после завершения обслуживания прерывания. Значение бита MULIP перезаписывается из стека, при выполнении команды возврата из прерывания (RETI). Обычно это означает, что MULIP-флаг снова после этого принимает нулевое значение.

4-18 МЭИ, Центр Промышленной Электроники Фирмы Infineon

Система прерываний и ловушек/С167

Infineon

iecKnologios

Примечание: MULIP-флаг - часть окружения задачи! Когда подпрограмма обслуживания прерывания не осуществляет возврата в прерванную команду умножения и деления (т.е. в случае использования таблицы задач, переключающей между независимыми задачами), MULIP-флаг должен быть сохранен как часть окружения задачи, и таким образом должна осуществляться перезапись для новой задачи.

Флаги состояния прерывания ЦПУ (IEN, IL VL)

Бит разрешения прерываний глобально разрешает (IEN=1) или запрещает (IEN^) прерывания. Четырехбитное поле уровней прерываний (ILVL) отмечает уровень приоритета текущего состояния ЦПУ. Уровень прерывания ЦПУ изменяется аппаратно при входе в подпрограмму обслуживания прерывания. Также для запрещения прерываний ILVL может быть программно изменен. В случае присвоения ЦПУ максимально возможного 15-го уровня, текущая деятельность ЦПУ не может быть прервана, за исключением аппаратных ловушек и внешних немаскируемых прерываний. Подробности рассматриваются в разделе «Функции прерываний и ловушек».

После RESET все прерывания запрещены, и ЦПУ присвоен самый низкий уровень приоритета (ILVL^).

Указатель команд (IP)

Этот регистр определяет внутренний 16-битный сегментный адрес текущей команды, при этом сегмент данных выбирается при помощи регистра CSP. IP регистр размещен вне адресного пространства С167, и поэтому не доступен для программиста. Однако IP можно изменить косвенным путем с помощью стека, посредством команды возврата.

Значение IP-регистра изменяется при выполнении центральным процессором команд перехода, а также инкрементируется после вызова очередной команды.

Значение после RESET: ОООО

Бит Функция
IP Устанавливает внутри сегментное смещение адреса, для
(0 -15 биты) вызова текущий команды. IP отсылает к текущему сегменту
<SEGNR>

4-19 МЭИ, Центр Промышленной Электроники Фирмы Infineon

Система прерываний и ловушек/С167

Указатель сегмента кода (CSP)

Этот не адресуемый побитно регистр используется для указания сегмента кода, используемого для доступа к командам. Нижние 8 бит регистра CSP предназначены для выбора одного из 256 сегментов, верхние 8 бит зарезервированы для использования в будущих моделях.

CSP (FE08/04H)_Значение после RESET 0000

Бит Функция
SEGNR Номер сегмента
(0 -7 биты) Устанавливает сегмент кода, из которого вызываются
текущие команды. SEGNR игнорируется, при отключенной
сегментации.

Адреса ячейки кода создается путем прямого расширения 16-битного содержимого IP-регистра содержимым CSP-регистра, как показано на рисунке ниже.

В случае использования для доступа к внешнему коду режима сегментированной памяти, выбранное число битов адреса сегмента (7... 0, 3... 0 или 1. 0) из регистра CSP поступает на выводы Порта 4 для адреса сегмента А23/А19/А17 ... А16. В режиме несегментированной памяти или в режиме Single Chip, содержимое этого регистра не имеет значения, потому что все возможные обращения к коду автоматически ограничиваются сегментом 0.

Примечание: Значение CSP-регистра может быть только считано, и его значение нельзя изменить посредством прямой записи. Однако его можно изменить либо посредством команд JMPS и CALLS, либо посредством команд RETS и RETI.
Предыдущая << 1 .. 16 17 18 19 20 21 < 22 > 23 24 25 26 27 28 .. 100 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100