Page 297 - 4503
P. 297
9.2.3.3 Відновлення контексту
При завершенні опрацьовувача переривання найперше
слід за допомогою команди swapf _status,W у робочий
регістр занести початкове значення регістра STATUS. А далі
його скопіювати (movwf STATUS) власне у сам регістр
STATUS.
Початкове значення W відновлюється з тимчасової
змінної _work, із використанням двох послідовних команд
swapf, при цьому не отримуючи жодних змін у регістрі
STATUS.
Ну і нарешті виконується команда retfie, яка теж
зовсім не впливає на ознаки в регістрі STATUS.
9.3 Таймер
Всі, без винятку, мікроконтролери РІС містять у своєму
складі принаймі один базовий таймер/лічильник — Таймер 0
(рисунок 9.6). Лічильний регістр цього таймера TMR0 має
серед РСП адресу h’01’ (рисунок 6.5), він є доступний як для
запису, так і для зчитування і може сприймати для лічби як
внутрішні, так і зовнішні тактові імпульси. Зовнішні такти
подаються на вхід T0CKI (Timer 0 ClocK In), котрий суміщений
із лапкою RA4 порта А. Інкрементування лічильника від
внутрішніх імпульсів відбувається завдяки тактовому сигналу
Q4, частота котрого складає чверть частоти кварцового
резонатора. Частота як внутрішнього, так і зовнішнього
тактування може бути зменшина за допомогою внутрішнього
8–бітного попереднього ділильника (логічне влаштування
ділильників ми розглядали в розділі 4.2). Коефіціент ділення
задається за допомогою реґістра OPTION_REG (іноді його
називають просто OPTION).
297