Принципи функціонування апаратних таймерів-лічильників, що входять до складу мікроконтролера AVR атmega 128

У мікроконтролері AVR АТMEGA 128 утримуються 4 апаратних таймери/лічильника (Т0 – Т3), з яких Т0 і Т2 є 8 розрядними, а Т1 і Т3 – 16 розрядними. До складу таймерів/лічильників входять 3 основних регістри вводу/виводу: рахунковий регістр TCNTx, регістр керування TCCRx і регістр порівняння OCRx. Додатково для керування перериваннями від таймерів/лічильників використовуються регістри TIMSK і TIFR.

У регістр TIMSK записуються керуючі (маскуючі) біти (див. рисунок 4.1).

 

№ біта                
37h(57h) ОCIE2 TOIE2 TICIE1 OCIE1А OCIE1В TOIE1 OCIE0 TOIE0

 

Рисунок 4.1 – Регістр маски переривань від таймерів/лічильників – TIMSK.

 

Опис керуючих бітів регістра TIMSK наводиться нижче:

Біт 7 - OCIE2: дозвіл переривання по збігу 8 розрядного таймера/лічильника Т2;

Біт 6 - TOIE2: дозвіл переривання по переповненню 8 розрядного таймера/лічильника Т2;

Біт 5 - TIСIE1: дозвіл переривання по події «захоплення» 16 розрядного таймера/лічильника Т1;

Біт 4 - OCIE1А: дозвіл переривання по збігу «А» 16 розрядного таймера/лічильника Т1;

Біт 3 - OCIE1У: дозвіл переривання по збігу «В» 16 розрядного таймера/лічильника Т1;

Біт 2 - ТОIE1: дозвіл переривання по переповненню 16 розрядного таймера/лічильника Т1;

Біт 1 - OСIE0: дозвіл переривання по збігу 8 розрядного таймера/лічильника Т0;

Біт 0 - TOIE0: дозвіл переривання по переповненню 8 розрядного таймера/лічильника Т0;

 

У регістрі TIFR формуються відповідні прапори (див. рисунок 4.2).

 

 

№ біта                
36h (56h) OCF2 TOV2 ICF1 OCF1А OCF1В TOV1 OCF0 TOV0

 

Рисунок 4.2 – Регістр прапорів переривань від таймерів/лічильників – TIFR.

 

Опис прапорів регістра TIFR наводиться нижче:

Біт 7 - OCF2: прапор переривання по збігу 8 розрядного таймера/лічильника Т2;

Біт 6 – TOF2: прапор переривання по переповненню 8 розрядного таймера/лічильника Т2;

Біт 5 - ICF1: прапор переривання по події «захоплення» 16 розрядного таймера лічильника Т1;

Біт 4 - OС1A: прапор збігу «А» 16 розрядного таймера/лічильника Т1;

Біт 3 - OС1У: прапор збігу «В» 16 розрядного таймера/лічильника Т1;

Біт 2 – TOV1: прапор переривання по переповненню 16 розрядного таймера/лічильника Т1;

Біт 1 – OCF0: прапор переривання по збігу 8 розрядного таймера/лічильника Т0;

Біт 0 – TOV0: прапор переривання по переповненню 8 розрядного таймера/лічильника Т0;

 

Розглянемо докладно принципи функціонування 8-ми розрядного таймера/лічильника Т0, структурна схема якого представлена на рис. 4.3. До складу таймера/лічильника Т0 входять 3 8-розрядних регістри вводу/виводу:

- рахунковий регістр TCNT0;

- регістр порівняння OCR0;

- регістр керування TCCR0.

Додатково для завдання режимів роботи й керування перериваннями використовуються регістри ASSR, TIMSK і TIFR. Адреси основних регістрів таймера/лічильника Т0 c вказівкою їхніх ідентифікаторів приводяться в таблиці 4.2.

 

Таблиця 4.2 - Адреси* і абревіатури регістрів, що використовуються при роботі з таймером/лічильником Т0

 

Адреса* Абревіатура Адреса* Абревіатура Адреса* Абревіатура
032h TCNT0 033h TCCR0 037h TIMSK
031h OCR0 030h ASSR 036h TIFR

*Адреси регістрів указуються в адресному просторі уведення/виводу.

 

Регістр ASSR (див. рисунок 4.4) дозволяє задати режим роботи таймера/лічильника Т0. Сигнал AS0 подається на адресний вхід мультиплексора MUX1 і визначає вхідний сигнал для попереднього дільника Prsc частоти. Результуюча частота fр0 таймера/лічильника Т0 (частота відновлення значень у рахунковому регістрі TCNT0, період – Тр0) визначається значеннями бітів CS00, CS01, CS02 регістра TCCR0 (див. рисунок 4.5), за допомогою якого встановлюються необхідні параметри роботи таймера. Залежно від режиму роботи, значення, що втримуються в рахунковому регістрі TCNT0, або інкрементуються, або декрементуються (спочатку в TCNT0 утримується 0). Прапор переповнення таймера перебуває в регістрі TIFR (див. рисунок 4.2). Дозвіл і заборона переривань від таймера встановлюється у відповідних бітах регістра TIMSK (див. рисунок 4.1).

Рисунок 4.3 - Структурна схема 8-ми розрядного таймера/лічильника Т0

 

Таймер/лічильник Т0 можна використати як лічильник з високим дозволом, так і для точних застосувань із низьким коефіцієнтом розподілу тактової частоти. Більш високі коефіцієнти розподілу можна вказувати для роботи з повільно змінюючимися функціями, або при вимірі тривалості тимчасових інтервалів між рідкісними подіями. При переповненні рахункового регістра TCNT0 встановлюється прапор ТО0. У кожному циклі роботи таймера/лічильника Т0 відбувається порівняння значень, що перебувають у рахунковому регістрі TCNT0 і регістрі порівняння ОС0. У випадку рівності вмісту цих регістрів встановлюється прапор OCF0 регістра TIFR (див. рисунок 4.2). Якщо в регістрі TIMSK (див. рисунок 4.1) установлені керуючі біти ТОIE0 і OCIE0, то при виникненні подій ТСNT0>255 (переповнення) і TCNT0=OCR0 (збіг) генеруються відповідні переривання, оброблювачі яких описуються як:

interrupt [TIM0_OVF] void timer0_overflow (void) // переповнення;

interrupt [TIM0_COMP] void timer0_compare (void) // збіг.

Переривання обробляються тільки при встановленому прапорі I дозволу переривань регістра стану SREG.

 

 

№ біта                
30h (50h) Х Х Х Х AS0 TCN0UB TCN0UB TCN0UB

Рисунок 4.4 - Регістр керування таймером/лічильником Т0

в асинхронному режимі – ASSR

 

Опис керуючих бітів регістра ASSR наводиться нижче:

Біти 7..4 - зарезервовані й завжди читаються як 0.

Біт 3 - AS0: біт перемикання режиму роботи 8 розрядного таймера/лічильника Т0: якщо AS0=0, то на вхід попереднього дільника частоти надходить внутрішній тактовий сигнал мікроконтролера із частотою CLK (синхронний режим), якщо AS0=1, то на вхід попереднього дільника частоти надходить зовнішній тактовий сигнал по лінії ТOSC1 (асинхронний режим);

Біт 2 – ТСNТ0UB: прапор відновлення рахункового регістра TCNT0: на початку операції запису нового значення в TCNT0 прапор встановлюється в 1, а при завершенні – в 0;

Біт 1 – OCR0UB: прапор відновлення регістра порівняння OCR0: на початку операції запису нового значення в OCR0 прапор встановлюється в 1, а при завершенні – в 0;

Біт 0 – ТС0UB: прапор відновлення керуючого регістра TCС0: на початку операції запису нового значення в TCС0 прапор встановлюється в 1, а при завершенні – в 0;

 

№ біта                
33h (53h) FOC0 WGM00 COM01 COM00 WGM01 CS02 CS01 CS00

 

Рисунок 4.5 – Регістр керування таймером/лічильником Т0 - TCCR0

 

Опис керуючих бітів регістра TCCR0 наводиться нижче:

Біт 7 - FOC0: біт установки примусової зміни стану виводу ОС0: FOC0=0 у режимах “Швидкодіючий ШИМ” і “ШИМ з точною фазою”, якщо FOC0=1, то стан виводу ОС0 змінюється у відповідність із установками розрядів COM00 і СОМ01;

Біти 6,3 - WGM00, WGM01: визначають режим роботи таймера лічильника Т0 (див. таблицю 4.3);

Біти 5,4 - COM01, COM00: визначають поводження виводу OC0 з появою події «збіг» (див. таблицю 4.4);

Біти 2,1,0 - СS02, CS01, CS00: визначають частоту тактового сигналу таймера/лічильника Т0 (див. таблицю 4.5);

 

 

Таблиця 4.3 - Режими роботи таймера/лічильника Т0

WGM01 WGM00 Опис режиму роботи таймера/лічильника Т0
    Стандартний (Normal)
    ШИМ з точною фазою (Phase correct PWM)
    Скидання при збігу (CTC)
    Швидкодіючий ШИМ Fast PWM

 

Таблиця 4.4 – Режими керування виводом ОС0 таймера/лічильника Т0

COM01 COM00 Опис режиму керування виводом ОС0
    Таймер/лічильник Т0 відключений від виводу ОС0
    Інверсія сигналу на виводі ОС0
    Вивід ОС0 скидається в 0
    Вивід ОС0 встановлюється в 1

 

При роботі таймера/лічильника Т0 від зовнішнього сигналу, зовнішній сигнал синхронізується із сигналом CLK тактового генератора мікроконтролера. Для коректної обробки зовнішнього сигналу, мінімальний інтервал між сусідніми імпульсами зовнішнього сигналу повинен перевищувати період тактової частоти процесора. Сигнал зовнішнього джерела обробляється по спадаючому фронту тактової частоти процесора.

 

Таблиця 4.5 - Значення коефіцієнтів для попереднього

дільника частоти таймера/лічильника Т0

CS02 CS01 CS00 Опис f р0, кгц Тр0, мкс
      Таймер/лічильник зупинений  
      CLK   0,09
      CLK/8   0,72
      CLK/32   2,88
      CLK/64   5,76
      CLK/128   11,52
      CLK/256   23,04
      CLK/1024 11,7 92,16

 

 

До складу мікроконтролера AVR MEGA 128 входять два 16-розрядних таймери/лічильника Т1 і Т3. Дані пристрої, за винятком деяких специфічних функцій (наприклад, режим “захоплення”), працюють аналогічно 8-розрядним таймерам лічильникам і використовуються для подібних цілей, однак дозволяють виконувати рахунок зі значно меншими частотами.

Розглянемо докладно функціонування таймера/лічильника Т1. До складу таймера/лічильника Т1 входять наступні регістри:

- 16-розрядний рахунковий регістр TCNT1;

- три 16-розрядних регістри порівняння OCR1A, OCR1B, OCR1C;

- три 16-розрядних регістри керування TCCR1A, TCCR1B, TCCR1C;

- 16-розрядний регістр захоплення ICR1.

Додатково для завдання режимів роботи й керування перериваннями використовуються регістри TIMSK, ETIMSK, TIFR, ETIFR, ICR1. Адреси основних регістрів таймера/лічильника Т1 c вказівкою їхніх ідентифікаторів приводяться в таблиці 4.6.

Кожний 16-розрядний регістр фізично розміщується у двох 8-розрядних регістрах вводу/виводу, абревіатури яких виходять шляхом додавання до назви регістра букв H (High, старший байт) L (Low – молодший байт). Наприклад, 16 розрядний рахунковий регістр TCNT1 фізично перебуває у двох 8-розрядних регістрах TCNT1H: TCNT1L. Для того, щоб запис або читання обох байт, що входять до складу 16-розрядного регістра, відбувалася одночасно, у складі таймерів/лічильників Т1 і Т3 є спеціальний (програмно недоступний) 8-розрядний регістр TEMP, призначений для зберігання старшого байта значення.

 

 

Таблиця 4.6 - Адреси* і абревіатури регістрів, що використовуються при роботі з таймером/лічильником Т1.

 

Адреса* Абревіатура Адреса* Абревіатура
02Ch TCNT1L 02Fh TCCR1A
02Dh TCNT1H 02Eh TCCR1B
02Ah OCR1AL 07Аh TCCR1C
02Bh OCR1AH 036h TIFR
028h OCR1BL 07Ch ETIFR
029h OCR1BH 037h TIMSK
078h OCR1CL 07Dh ETIMSK
079h OCR1CH    

*Адреси регістрів вказуються в адресному просторі вводу/виводу.

 

При записі 16-розрядного значення спочатку повинен бути завантажений старший байт (у регістр ТЕМР), а потім молодший байт із регістром ТЕМР записуються в одному такті. Переривання при записі даних в 16-розрядні регістри переривання повинні бути заборонені. У режимі читання спочатку повинен бути зчитаний молодший байт 16-розрядного регістра. Рахунковий регістр TCNT1 використовується для зберігання значень реверсивного лічильника, дані в якому інкрементуються або декрементуються по фронті тактового сигналу таймера/лічильника Т1. Якщо встановлено прапор TOIE1 у регістрі TIMSK (див. рисунок 4.1), то при переповненні TCNT1 генерується переривання й встановлюється прапор TOV1 у регістрі TIFR (див. рисунок 4.2). Заголовок процедури обробки переривання по переповненню регістра-лічильника TCNT1 може виглядати в такий спосіб:

interrupt [TIM1_OVF] void timer1_overflow (void).

Блок порівняння таймера/лічильника Т1 містить 3 16-розрядних регістри порівняння OCR1A, OCR1B, OCR1C. Під час роботи таймера/лічильника в кожному машинному циклі виконується безперервне порівняння даних цих регістрів зі значенням в TCNT1. При рівності значень цих регістрів генеруються переривання в порівнянні (при встановлених прапорах TOIE1А, TOIE1В, TOIE1С у регістрах TIMSK / ЕTIMSK) і встановлюються відповідні прапори OCF1A, OCF1В, OCF1С у регістрах TIFR / ETIFR. Опису заголовків процедур обробки переривань у порівнянні може виглядати в такий спосіб:

interrupt [TIM1_COMPA] void timer1_compareА (void);

interrupt [TIM1_COMPВ] void timer1_compareВ (void);

interrupt [TIM1_COMPС] void timer1_compareС (void).

У стандартному режимі роботи всі біти керуючих регістрів TCCR1A і TCCR1С встановлюються в 0 (докладний опис даних регістрів приводиться в [1]). Формування тактового сигналу таймера/лічильника здійснюється за допомогою переддільника. Результуюча частота fр1 таймера/лічильника Т1 (частота відновлення значень у рахунковому регістрі TCNT1, період – Тр1) визначається значеннями бітів CS00, CS01, CS02 регістра TCCR1B (див. рисунок 4.6), за допомогою якого встановлюються необхідні параметри роботи таймера (див. таблицю 4.7). Автоматичне скидання рахункового регістра TCNT1 при збігу зі значенням регістра OCR1A програмується шляхом установки 3-го біта регістра TCCR1В в 1.

 

№ біта                
2Eh (4Eh) FOC0 WGM00 COM01 WGM13 WGM12 CS02 CS01 CS00

 

Рисунок 4.6 – Регістр керування таймером/лічильником Т1 – TCCR1B

Опис керуючих бітів регістра TCCR1B подібно з описом бітів регістра TCCR0 (див. рисунок 4.5).

Таблиця 4.6 - Значення коефіцієнтів для попереднього дільника частоти таймера/лічильника Т1

CS02 CS01 CS00 Опис f р1, кгц Тр1, мкс
      Таймер/лічильник зупинений  
      CLK   0,09
      CLK/8   0,72
      CLK/64   5,76
      CLK/256   23,04
      CLK/1024 11,7 92,16
      Рахунок здійснюється по задньому фронті імпульсів на лінії Т1 _   _
      Рахунок здійснюється по передньому фронті імпульсів на лінії Т1 _ _

Приклад С-програми ініціалізації таймера-лічильника Т0 для генерування переривань по переповненню, що працює в стандартному режимі із частотою CLK/1024 приводиться нижче:

ASSR = 0; завдання синхронного режиму роботи;

TCCR0 = 7; завдання параметрів переддільника;

TIMSK = 1; установка біта TOIE0 для дозволу переривання по переповненню таймера-лічильника Т0;

#asm("sei"); дозволити переривання в системі.

 

 

4.2 Опис лабораторної установки

Лабораторна робота виконується в індивідуальному порядку. На кожному робочому місці повинні бути встановлені: багатофункціональний лабораторний макет на базі мікроконтролера AVR ATMEGA 128, ПЕОМ типу IBM PC/AT c інстальованим програмним забезпеченням: операційною системою MS-WINDOWS v. 9x, 2000, XP і программатором на основі кросу-компілятора мови програмування C CodeVision AVR. Завдання виконуються на лабораторному макеті на базі 8-ми розрядного мікроконтролера AVR ATMEGA 128. Досліджувані в роботі таймери - лічильники Т0 і Т1 входять до складу мікроконтролера. Для індикації режимів роботи таймерів додатково використовується блок з 8 світлодіодів (див. рисунок 1.7), підключених до мікроконтролера через порт D у відповідність зі схемою, наведеної на рис. 1.9 (катоди світлодіодів підключені до виводів порту D, на аноди світлодіодів подана позитивна напруга). Докладний опис лабораторного макета наведено в пункті 1.2 лабораторної роботи № 1.

 

4.3 Порядок проведення роботи й вказівки по її виконанню

 

Перед початком виконання практичної частини лабораторної роботи проводиться експрес-контроль знань по принципах функціонування таймерів/лічильників, що входять до складу мікроконтролера AVR ATMEGA 128, а також по способах завдання й виміру тимчасових інтервалів. При підготовці до лабораторної роботи необхідно скласти попередній варіант листинга програми, у відповідність із індивідуальним завданням (див. таблицю 4.7).

Завдання. Розробити в середовищі програмування Code Vision AVR програму мовою С для мікроконтролера AVR ATMEGA 128, що управляє блоком з 8-ми світлодіодів. Тимчасові параметри індикації задаються за допомогою установок таймерів - лічильників Т1 або Т0. Варіанти індивідуальних завдань представлені в таблиці 4.7.

Порядок виконання завдання:

1. Включити лабораторний макет (установити вимикач електроживлення в положення I, і переконатися у світінні індикатора електроживлення червоними кольорами).

2. Запустити компілятор Code Vision AVR.

3. Створити порожній проект.

4. Створити файл ресурсу для коду програми й підключити його до проекту.

5. Увести код вихідного модуля програми керування блоком світлодіодів у відповідність із варіантом завдання, зазначеному в таблиці 4.7.

6. Виконати компіляцію (нажавши клавішу F9) вихідного модуля програми й усунути помилки, отримані на даному етапі.

7. Настроїти параметри программатора.

8. Створити завантажувальний модуль програми (нажавши комбінацію клавіш Shift+F9) і виконати програмування мікроконтролера.

9. Перевірити працездатність завантаженої в мікроконтролер програми й показати результати роботи викладачеві.

10. У випадку некоректної роботи розробленої програми, виконати апаратне скидання мікроконтролера, провести налагодження вихідного модуля програми й заново перевірити функціонування програми, повторивши виконання пункту 9.

 

Приклад виконання завдання: розробити програму, що виконує в нескінченному циклі керування блоком світлодіодів у режимі “вогонь, щобіжить” (з послідовним включенням/вимиканням світлодіодів блоку індикації). Завдання тимчасових інтервалів виконати за допомогою наступних настроювань таймера Т1: керуюче переривання TIM1_OVF, частота рахунку f р1 = 43 Кгц.

Рішення: Програмне керування блоком світлодіодів у режимі “вогонь, щобіжить” можна забезпечити, записуючи в усі, крім нульового, розряди регістра PORTD порту D рівні “логічної одиниці ” (погасити всі світлодиоды крім нульового), а потім виконуючи циклічне переміщення нульового рівня по лініях порту D. Дані дії необхідно розмітити в оброблювачі переривання TIM1_OVF по переповненню від таймера – лічильника Т1.

Частота зміни значень у рахунковому регістрі TCNT1 таймера – лічильника Т1 дорівнює 43 КГц (див. таблицю 4.6):

f р1 = CLK/256 = 11 Мгц/256 = 43 КГц

Відповідно значення, що заносить у регістр TCCR1B, рівняється 4.

Період зміни значень у рахунковому регістрі TCNT1:

Тр1=1/ f р1=23 мкс.

Відповідно тривалість одного повного циклу рахунку таймера Т1 дорівнює:

t1=23 мкс · 65536 ≈1,5 с.

Таким чином, з інтервалом 1,5 с буде здійснюватися циклічне переміщення запаленого світлодіода (відповідно до алгоритму, наведеному на рис. 4.7).

Повний текст вихідного модуля програми мовою С с докладними коментарями приводиться нижче:

#include <mega128.h> Підключити заголовний файл mega128.h;

unsigned char ld_stat=0xFE; опис глобальної змінної ld_stat

с присвоєнням початкового значення 0xfe;

interrupt [TIM1_OVF] void timer1_overflow(void) процедура обробки

{ переривання по переповненню від таймера-лічильника Т1;

led_stat<<=1; виконати логічний зсув на 1 розряд значення в ld_stat;

ld_stat|=1; виконати операцію логічного АБО над молодшим бітом

змінної ld_stat;

if (ld_stat==0xFF) ld_stat=0xFE; при переносі нульового значення з 7-го біта (за межі лівої границі блоку світлодіодів) завантажити в змінну ld_stat початкове значення 0xFE;

PORTD=ld_stat; вивести значення led_status в PORTD дляіндикації;

} завершення процедури обробки переривання;

main() { основна частина програми;

DDRD=0xFF; настроїти порт D на вивід даних;

PORTD=0xFF; погасити всі світлодіоди;

TCCR1A=0; завдання режимів роботи для таймера-лічильника Т1;

TCCR1B=4; завдання частоти роботи для таймера-лічильника Т1;

TIMSK=4; дозволити переривання TIM1_OVF по переповненню

16 розрядного таймера/лічильника Т1;

#asm("sei"); установити біт I загального дозволу переривань;

while (1) { } установити цикл із нескінченним числом ітерацій;

} завершальна операторна дужка програми.

 

Рисунок 4.7 - Алгоритм програми керування блоком світлодіодів

у режимі “вогонь, щобіжить”.

 

 

Таблиця 4.7 - Варіанти індивідуальних завдань

№ п. п. Завдання
  Розробити програму, що виконує в нескінченному циклі включення/вимикання 1-го світлодіода: керуюче переривання TIM1_OVF,частота рахунку f р1 = 43 Кгц.
  Розробити програму, що виконує в нескінченному циклі включення/вимикання 2-го світлодіода: керуюче переривання TIM0_OVF,частота рахунку f р1 = 11,7 Кгц.
  Розробити програму, що виконує в нескінченному циклі включення/вимикання 3-го світлодіода: керуюче переривання TIM1_COMPA, f р1 = 43 КГц, OCR1A=40000.
  Розробити програму, що виконує в нескінченному циклі включення/вимикання 0-го й 7-го світлодіодів: керуюче переривання TIM1_COMPВ, f р1 = 43 КГц, OCR1В=50000.
  Розробити програму, що виконує в нескінченному циклі включення/вимикання 4-го й 5-го світлодіодів: керуюче переривання TIM1_COMPB, f р1 = 43 КГц, OCR1B=30000.
  Розробити програму, що виконує в нескінченному циклі включення/вимикання 3-го й 6-го світлодіодів: керуюче переривання TIM0_OVF,частота рахунку f р1 = 11 КГц,OCR0=200.
  Розробити програму, що виконує в нескінченному циклі включення/вимикання 2-го світлодіода: керуюче переривання TIM1_COMPA, f р1 = 11 КГц, OCR1A=10000.
  Розробити програму, що виконує в нескінченному циклі включення/вимикання 3-го й 6-го світлодіодів: керуюче переривання TIM1_OVF,частота рахунку f р1 = 86 Кгц.
  Розробити програму, що виконує в нескінченному циклі включення/вимикання 1-го й 2-го світлодіодів: керуюче переривання TIM1_OVF,частота рахунку f р1 = 11 Кгц.
  Розробити програму, що виконує в нескінченному циклі включення/вимикання 0-го й 5-го світлодіодів: керуюче переривання TIM1_COMPВ, f р1 = 43 КГц, OCR1В=30000.

 

* завдання підвищеної складності.

 

Зміст звіту

У звіті необхідно привести наступне:

характеристики лабораторної обчислювальної системи;

вихідний модуль розробленої програми;

аналіз отриманих результатів і короткі виводи по роботі, у яких необхідно відбити особливості використання вбудованих таймерів мікроконтролера для формування апаратно-незалежних тимчасових інтервалів.

 

 

4.5 Контрольні питання й завдання

1. B чому переваги обміну по перериваннях у порівнянні з іншими відомими вам способами обміну інформацією?

2. Що містить у собі поняття системи переривань?

3. Поясніть поняття вектора переривань і таблиці векторів переривань.

4. Які дії виконує мікроконтролер при переході на процедуру обробки переривання?

5. Поясніть принципи формування тимчасових інтервалів за допомогою 8-розрядного таймера-лічильника.

6. Поясніть принципи формування тимчасових інтервалів за допомогою 16-розрядного таймера-лічильника.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: