Page 291 - 4503
P. 291
через вентиль М2–НЕ, який у даному випадку відіграє роль
програмованого інвертора (згадаємо розділ 2.7).
Незважаючи на те, що ознаки встановлюються
зовнішніми щодо процесора подіями, гасити їх потім можна
тільки програмно. При обробці переривань життєво
необхідним є скинення ознаки перед поверненням із
процедури обробки переривань — інакше все ще
встановлена ознака знову стане запитом на переривання.
Наприклад для скинення ознаки зовнішнього переривання
слід скористатися командою bcf INTCON, INTF.
Програмно установити ж ознаки можна як побітно, так і через
копіювання констант у регістр. Якщо потрібно дозволити
переривання наприклад, як від лапки INT, так і від Таймера 0,
то доведеться встановити біти 7,5, і 4 тобто виконати
команди:
movlw b’10110000’
movwf INTCON
Дозволяючі біти можна скинути так само, як і звичайні.
Що стосується мікроконтролера PIC16F84, то у цієї
моделі переривання може генеруватися також після
завершення циклу запису у внутрішню EEPROM — пам'ять
даних. У регістрі INTCON для ознаки EEIF не вистачило місця,
тому її розмістили у біті 4 реґістра керування пам’яттю —
EECON1. Більш детально про нього йтиметься дещо пізніше.
Окремо варто згадати за так званий сигнал пробудження,
котрий, як бачимо з рисунка 9.3, не вимагає установки GIE.
Пробудження — це переведення мікроконтролера із сплячого
режиму, в якому він перебував завдяки команді sleep.
Вказаний режим може застосовуватись, коли наприклад десь у
малодоступному місці (приміром на дні озера) впродовж року
треба щогодини контролювати температуру. Очевидно, що
час на обробку даних і їх реєстрація є гранично мізерним у
порівнянні із часом простою. Тому після кожного сеансу
291