![]() | |
НПО Системы Безопасности (499)340-94-73 График работы: ПН-ПТ: 10:00-19:00 СБ-ВС: выходной ![]() ![]() |
Главная » Периодика » Безопасность 0 ... 25262728293031 ... 159
Произвольные позиции стека могут быть доступны с помощью двух команд: WREG = 3 , WREG = PLUSWO , Регистры состояния в микроконтроллерах PIC 18Схх применяются два регистра, которые содержат информацию о состоянии микроконтроллера и обеспечивают управление его работой (табл. 5.17, 5.18). Таблица 5.17 Назначение разрядов региара состояния STATUS микроконтроллеров PIC 18Схх
Счетчик команд Счетчик команд и стек счетчика команд (стек программного счетчика) микроконтроллеров PIC 18Схх в целом аналогичны средствам PIC-Микроконтроллеров других подсемейств, за исключением двух существенных отличий. Первое - возможность адресации программной памяти объемом до 1 Мб. Вследствие этого программный счетчик включает в себя три регистра: регистр младших разрядов PCL, регистр средних разрядов PCLATH и регистр старших разрядов PCLATU. второе отличие связано с использованием так называемого быстрого
стека (fast stack), который позволяет сохранять и восстанавливать регистры контекстабез написания специальных подпрограмм. И наконец, в PIC 18Схх допускается считывание данных из стека и запись в него. Указанные отличия дают ряд дополнительных возможностей при использовании микроконтроллеров PIC 18Схх, в частности позволяют разрабатывать с их помощью эффективные программные приложения, которые не могут быть реализованы в рамках архитектур других подсемейств PIC-микроконтроллеров. Каждая команда микроконтроллера PIC IBCxx располагается по четному адресу. Первая команда начинается с нулевого адреса, вторая - с адреса «два», третья - с адреса «четыре» и т.д. Если задать для счетчика команд нечетные адреса, это может привести к останову программы-снм)лятора пакета MPLAB и непредсказуемому поведению микроконтроллеров PIC 18Схх. Изменение принятого (для первых подсемейств PIC-микроконтроллеров) подхода означает, что некоторые ранее разработанные правила, которые предусматривают адресацию каждого байта, для микроконтроллеров PIC IBCxx должны быть кардинально пересмотрены. Глубина стека программного счетчика составляет 31, что вдвое превосходит стек подсемейства PIC 17Схх и в четыре раза - стек микроконтроллеров среднего подсемейства. Кроме того, микроконтроллеры PIC 18Схх предусматривают возможность мониторинга состояния стека с помощью соответствующих аппаратных средств и регистра STKPTR. Структурная схема стека показана на рис. 5.10. Спецификация разрядов регистра STKPTR приведена в табл. 5.19- Биты STKUNF (стек не полон) и STKFUL (стек полон) устанавливаются в случае реализации соответствующих условий. Если в слове Стек счетчика команд Элементе Элемент 1 Элемент 2 Элемент 13 tosu tosh tosl 21 бит StkRr 5 бит 21 бит- Рис. 5.10 Структура аека счетчика команд Таблица 5.19 Назначение разрядов региара STKPTR
конфигурации установлен бит STVREN, то при установке битов STKFUL и STKUNF должен произойти перезапуск (сброс) микроконтроллера. Быстродействующий стек позволяет упростить процедуру обращения к подпрограммам в приложениях, в которых не разрешены прерывания, а также в приложениях, где допускается применение программы обработки прерываний. Чтобы использовать быстродействующий стек совместно с командами call и return, в конце этих Команд следует добавлять параметр 1; в противном случае необходимо добавить параметр 0. Быстродействующий стек имеет размер три байта, что позволяет автоматически запоминать содержимое регистров WREG, STATUS И BSR (то есть контекст) при распознавании запроса на прерывание И выполнении программного перехода по вектору прерывания. 0 ... 25262728293031 ... 159 |