Основні особливості архітектури мікроконтролерів PlCmicro. Організація пам'яті програм. Непряма адресація, регістри INDF й FSR, страница 11

Як правило мікроконтролери середнього сімейства мають три регістри керування перериваннями. Регістр INTCО містить біт глобального дозволу переривань GIE, а також біт дозволу переривань від периферійних модулів PEIE. У парі регістрів PIE/PIR розміщаються індивідуальні біти дозволу переривань від периферійних модулів і прапори виниклого переривання

Регістр INTCON

Регістр INTCON доступний для запису й читання В цьому регістрі втримуються різні біти дозволів і прапорів переривань

Регістри PIE

Залежно від числа джерел переривань периферійні: модулів у мікроконтролері можуть міститися регістри дозволу периферійних переривань PIE1 й PIE. У цих регістрах розташовуються індивідуальні біти дозволу переривань від периферійних модулів. У даній документації ці регістри будуть позначатися як PIE. Якщо в мікроконтролері присутній регістр PIE, то необхідно встановити в '1' біт PEIE для дозволу переривань від периферійних модулів.

Розташування бітів у регістрах PIE стандартизоване однак у знову розроблювальних мікроконтролерах воно може змінитися. Не буде виникати проблем з розрядним розміщенням бітів у керуючих регістрах, якщо Ви будете використати додатковий файл від Microchip Inc із символьним позначенням бітів Це дозволить асемблеру виконати компіляцію вихідного тексту програми із правильною вказівкою адреси регістра й номера біта

Регістри PIR

Залежно від числа джерел переривань периферійних модулів у мікроконтролері можуть міститися регістри прапорів переривань від периферійних модулів PIR1 й PIR2. У цих регістрах розташовуються індивідуальні біти прапорів переривань від периферійних модулів. У даній документації ці регістри будуть позначатися як PIR

Примітка 1. Прапори переривань установлюються при виникненні умов переривань поза залежністю від відповідних бітів дозволи й битка загального дозволу переривань GIE (INTCON<7>)

Примітка 2. Програмне забезпечення користувача повинне скидати відповідні прапори переривань в '0' перед дозволом переривання й у підпрограмі обробки переривання

Розташування бітів у регістрах PIR стандартизовано, однак у знову розроблювальних мікроконтролерах воно може змінитися. Не Буде виникати проблем з розрядним розміщенням бітів у керуючих регістрах, якщо Ви Будете використати додатковий файл від Microchip Inc із символьним позначенням Бітів. Це дозволить асемблеру виконати компіляцію вихідного тексту програми із правильною вказівкою адреси регістра й номера біта

Час переходу на обробку переривань

Часом перехід на обробку переривань уважається інтервал часу від установки прапора виниклого переривання до моменту початку виконанні команди за адресою 0004h у пам'яті програм (якщо переривання дозволене)

Для синхронних переривань (внутрішніх) час переходу дорівнює 3тсу

Для асинхронних переривань (зовнішніх), наприклад зовнішнє переривання INT або зміна рівня сигналу на входах RB7.RB4. час переходу на обробку переривань буде становити 3 - 3.75Тсу. Час переходу на обробку переривань однаково для одне й двох циклових команд.

Зовнішні переривання INT

Зовнішнє переривання із входу RBO/INT відбувається по передньому фронті сигналу, якщо біт INTEDG (OPTION_REG<6>) установлений в '1', по задньому фронті сигналу, якщо біт INTEDG скинутий в '0'. Коли активний фронт сигналу з'являється на вході RBO/INT, біт INTE (INTCON<1>) установлюється в '1' Переривання може бути заборонено скиданням біта INTE (lNTCо<4>) в '0'. Прапор переривання INTЕ повинен бути скинутий програмно в підпрограмі обробки переривань. Переривання INТ може вивести мікроконтролер з режиму SLEEP, якщо біт INTE=1 до переходу в режим SLEEP. Стан біта GIE визначає чи переходити на підпрограму обробки переривань після виходу з режиму SLEEP.

Збереження контексту

При переході на підпрограму обробки переривань у стеці апаратно зберігається тільки адреса повернення. Як правило, додатково необхідно зберігати ключові регістри (наприклад W, STATUS), що виконується програмно.