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
   292   293   294   295   296   297   298   299   300   301   302