Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні роботи.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
6.67 Mб
Скачать

Завдання:

1. Проініціалізувати таблицю переривань і стек

2. Здійснити стартову настройку таймера лічильника 0

2.1 Регістр порогу порівняння OCR0 рівним 78 (десяткове число)

2.2 Регістр управління таймером-лічильником 0 TCCR0

2.2.1 Біт примусової установка результату порівняння FOC0 = 0b0

2.2.2 Режим Скидання при збігу (CTC): WGM01, WGM00 = 0b10

2.2.3 Вихід OC0 відключений: COM01, COM00 = 0b00

2.2.4 Тимчасово таймер відключений: CS02, CS01, CS00 = 0b000

2.3 У Регістр маски переривань встановити біт OCIE0 – дозвіл генерування переривань при умові, що регістр таймера-лічильника TCNT0 зрівняється з регістром порогу порівняння OCR0

2.4 Запускаємо таймер лічильник 0 з встановленням подільника частоти 256 CS02, CS01, CS00 = 0b110

2.5 Встановити біт глобального дозволу переривань (I-біт)

3. Написати обробник неочікуваного переривання55

3.1 Вийти з обробника переривання

4. Написати обробник переривання коли регістр таймера-лічильника TCNT0 зрівняється з регістром порогу порівняння OCR0

4.1 Зберегти регістр статусу у СТЕК

4.1.1 Завантажити регістр статусу у регістр загального призначення

4.1.2 Записати даний регістр загального призначення у стек

4.2 Тут власне кажучи мав би бути обробник переривання, який ми лишаємо пустим, або можна вставити якісь свої команди для «покращення» освоєння теми переривань у AVR мікроконтролерах

4.3 Відновити регістр статусу зі СТЕК-у

4.1.2 «Виштовхати» вмістиме стеку (збережений регістр статусу) зі стеку в регістр загального призначення

4.1.1 Записати у регістр статусу даний регістр загального призначення

4.4 Вийти з обробника переривання

5. Реалізувати безперервний цикл

6. Хід виконання програми аналогічний, як у попередній лабораторній роботі № 9 «Вивчення програмування таймера мікроконтролера AVR» 56

Набір інструкцій

Мнемоніка

Операнди

Опис

Дія

Біти статусу

Кількість машинних циклів

Описано у лабораторній роботі

Арифметичні і логічні інструкції

ADD

Rd, Rr

Додавання без врахування переносу

Rd <— Rd + Rr

Z,C,N,V,H

1

2

ADC

Rd, Rr

одавання з врахуванням переносу

Rd <— Rd + Rr + C

Z,C,N,V,H

1

2

ADIW

Rdl,K

Додавання константи до слова

Rdh:Rdl <— Rdh:Rdl + K

Z,C,N,V,S

2

2

SUB

Rd, Rr

Віднімання без врахування переносу

Rd <— Rd - Rr

Z,C,N,V,H

1

2

SUBI

Rd, K

Віднімання константи

Rd <— Rd - K

Z,C,N,V,H

1

2

SBC

Rd, Rr

Віднімання з врахуванням переносу

Rd <— Rd - Rr - C

Z,C,N,V,H

1

2

SBCI

Rd, K

Віднімання константи з врахуванням переносу

Rd <— Rd - K - C

Z,C,N,V,H

1

2

SBIW

Rdl,K

Віднімання константи від слова

Rdh:Rdl <— Rdh:Rdl-K

Z,C,N,V,S

2

2

AND

Rd, Rr

Логічне І

Rd <— Rd · Rr

Z,N,V

1

9

ANDI

Rd, K

Логічне І з константою

Rd <— Rd · K

Z,N,V

1

2

OR

Rd, Rr

Логічне АБО

Rd <— Rd v Rr

Z,N,V

1

9

ORI

Rd, K

Логічне АБО з константою

Rd <— Rd v K

Z,N,V

1

2

EOR

Rd, Rr

Логічне ВИКЛЮЧАЮЧЕ АБО

Rd <— Rd Е Rr

Z,N,V

1

9

COM

Rd

Виконання порозрядного доповнення до одиниці (зворотній код)

Rd <— $FF - Rd

Z,C,N,V

1

9

NEG

Rd

Виконання порозрядного доповнення до двох (додатковий код)

Rd <— $00 - Rd

Z,C,N,V,H

1

9

SBR

Rd, K

Встановлення біт (біту) в регістрі

Rd <— Rd v K

Z,N,V

1

8

CBR

Rd, K

Очистка біт

(біту) в регістрі

Z,N,V

1

8

INC

Rd

Інкрементація

Rd <— Rd + 1

Z,N,V

1

5

DEC

Rd

Декрементація

Rd <— Rd - 1

Z,N,V

1

5

TST

Rd

Тестування на НУЛЬ або МІНУС

Z,N,V

1

4

CLR

Rd

Очистка регістру

Z,N,V

1

3

SER

Rd

Вствновлення у регістрі всіх біт у одиниці

Rd <— $FF

Нема

1

MUL

Rd, Rr

Множення беззнакових чисел

R1:R0 <— RdxRr

Z, C

2

7

MULS

Rd, Rr

Множення знакових чисел

R1:R0 <— RdxRr

Z, C

2

7

MULSU

Rd, Rr

Множення знакового числа з беззнаковим числом

R1:R0 <— Rd x Rr

Z, C

2

7

FMUL

Rd. Rr

Множення беззнакових дробових чисел

R1:R0 <— (RdxRr) << 1

Z, C

2

7

FMULS

Rd, Rr

Множення знакових дробових чисел

R1:R0 <— (RdxRr) << 1

Z, C

2

7

FMULSU

Rd, Rr

Множення знакового дробового числа із беззнаковим дробовим числом

R1:R0 <— (RdxRr) << 1

Z, C

2

7

Інструкції переходу

RJMP

k

Відносний перехід

PC <— PC + k +1

Нема

2

1

IJMP

 

Відносний перехід по вказівнику Z

PC <— Z

Нема

2

JMP

k

Перехід по безпосередній адресі

PC <— k

Нема

3

10

RCALL

k

Відносний перехід до підпрограми

PC <— PC + k + 1

Нема

3

4

ICALL

 

Відносний перехід до підпрограми по вказівнику Z

PC <— Z

Нема

3

CALL

k

Перехід по підпрограми

PC <— k

Нема

4

RET

 

Вихід з підпрограми

PC <— STACK

Нема

4

4

RETI

 

Вихід з переривання

PC <— STACK

I

4

10

CPSE

Rd,Rr

Зрівнювання і пропуск, якщо рівне if (Rd = Rr)

PC <— PC + 2 или 3

Нема

1/2/3

CP

Rd,Rr

Порівняння регістрів

Rd-Rr

Z, N,V,C,H

1

1

CPC

Rd,Rr

Порівняння регістрів із врахуванням біту переносу

Rd - Rr-C

Z, N,V,C,H

1

4

CPI

Rd,K

Порівняння з константою

Rd-K

Z, N,V,C,H

1

3, 4

SBRC

Rr,b

Пропустити наступну інструкцію, якщо біт регістру очищений

if (Rr(b)=O)PC <— PC + 2 или 3

Нема

1 /2/3

9

SBRS

Rr, b

Пропустити наступну інструкцію, якщо біт регістру встанвлений

if (Rr(b)=1)PC <— PC+ 2 или 3

Нема

1/2/3

9

SBIC

P, b

Пропустити наступну інструкцію, якщо біт регістру вводу/виводу очищений

if (P(b)=O)PC <— PC + 2 или 3

Нема

1 /2/3

9

SBIS

P, b

Пропустити наступну інструкцію, якщо біт регістру вводу/виводу встановлений

if (P(b)=1)PC <— PC + 2 или 3

Нема

1 /2/3

9

BRBS

s, k

Перейти, якщо біт у Регістрі Статусу (SREG) встановлений

if (SREG(s) = 1) then PC <— PC+k + 1

Нема

1/2

5

BRBC

s, k

Перейти, якщо біт у Регістрі Статусу (SREG) очищений

if (SREG(s) = 0) then PC <— PC+k + 1

Нема

1 /2

5

BREQ

k

Перейти, якщо рівне нулю

if (Z = 1) then PC <— PC + k + 1

Нема

1 /2

3

BRNE

k

Перейти, якщо не рівне нулю

if (Z = 0) then PC <— PC + k + 1

Нема

1 /2

3

BRCS

k

Перейти, якщо біт переносу встановлений

if (C = 1)then PC <— PC + k+ 1

Нема

1 /2

5

BRCC

k

Перейти, якщо біт переносу очищений

if (C = 0) then PC <— PC + k + 1

Нема

1 /2

5

BRSH

k

Перейти, якщо рівне або більше (беззнекове)

if (C = 0) then PC <— PC + k + 1

Нема

1 /2

1, 4

BRLO

k

Перейти, якщо менше (беззнекове)

if (C = 1) then PC <— PC + k+ 1

Нема

1 /2

1, 4

BRMI

k

Перейти, якщо від’ємне

if (N = 1)then PC <— PC + k + 1

Нема

1 /2

4

BRPL

k

Перейти, якщо додатнє

if (N = 0) then PC <— PC + k + 1

Нема

1 /2

4

BRGE

k

Перейти, якщо рівне більше чи рівне (знакове)

if (N e V= 0) then PC <— PC + k + 1

Нема

1 /2

4

BRLT

k

Перейти, якщо менше (знакове)

if (N e V= 1) then PC <— PC + k + 1

Нема

1 /2

4

BRHS

k

Перехід, якщо біт статусу Н встановлений

if (H = 1)then PC <— PC + k + 1

Нема

1 /2

BRHC

k

Перехід, якщо біт статусу Н скинутий

if (H = 0) then PC <— PC + k + 1

Нема

1 /2

BRTS

k

Перехід, якщо біт статусу T встановлений

if (T = 1)then PC <— PC + k +1

Нема

1 /2

BRTC

k

Перехід, якщо біт статусу T скинутий

if (T = 0) then PC <— PC + k + 1

Нема

1 /2

BRVS

k

Перейти, якщо біт переповнення встановлений

if (V = 1)then PC <— PC + k+ 1

Нема

1 /2

5

BRVC

k

Перейти, якщо біт переповнення очищений

if (V = 0) then PC <— PC + k + 1

Нема

1 /2

5

BRIE

k

Перехід, якщо біт голобального дозволу переривань встановлений

if ( I = 1)then PC <— PC + k + 1

Нема

1 /2

BRID

k

Перехід, якщо біт голобального дозволу переривань скинутий

if ( I = 0) then PC <— PC + k + 1

Нема

1 /2

Інструкцї передачі даних

MOV

Rd, Rr

Копіювання регістру

Rd <— Rr

Нема

1

1

MOVW

Rd, Rr

Копіювання слів між регістрами

Rd+1:Rd <— Rr+1:Rr

Нема

1

LDI

Rd, K

Безпосереднє завантаження константи у регістр

Rd <— K

Нема

1

1

LD

Rd, X

Завантаження у регістр з пам’яті даних методом непрямої адресації

Rd <— (X)

Нема

2

5

LD

Rd, X+

Завантаження у регістр з пам’яті даних методом непрямої адресації і постінкрементація

Rd <— (X), X <— X + 1

Нема

2

5

LD

Rd,-X

Предекрементація і потім завантаження у регістр з пам’яті даних методом непрямої адресації

X <— X - 1, Rd <— (X)

Нема

2

5

LD

Rd,Y

Завантаження у регістр з пам’яті даних методом непрямої адресації

Rd <— (Y)

Нема

2

5

LD

Rd, Y+

Завантаження у регістр з пам’яті даних методом непрямої адресації і постінкрементація

Rd <— (Y), Y <— Y + 1

Нема

2

5

LD

Rd,-Y

Предекрементація і потім завантаження у регістр з пам’яті даних методом непрямої адресації

Y <— Y - 1, Rd <— (Y)

Нема

2

5

LDD

Rd,Y+q

Завантаження у регістр з пам’яті даних методом непрямої адресації зі зміщенням

Rd <— (Y + q)

Нема

2

5

LD

Rd, Z

Завантаження у регістр з пам’яті даних методом непрямої адресації

Rd <— (Z)

Нема

2

5

LD

Rd, Z+

Завантаження у регістр з пам’яті даних методом непрямої адресації і постінкрементація

Rd <— (Z),Z <— Z+1

Нема

2

5

LD

Rd.-Z

Предекрементація і потім завантаження у регістр з пам’яті даних методом непрямої адресації

Z <— Z - 1, Rd <— (Z)

Нема

2

5

LDD

Rd, Z+q

Завантаження у регістр з пам’яті даних методом непрямої адресації зі зміщенням

Rd <— (Z + q)

Нема

2

5

LDS

Rd, k

Завантаження з пам’яті даних методом прямої адресації

Rd <— (k)

Нема

2

5

ST

X, Rr

Запис у пам’ять даних з регістра методом непрямої адресації

(X) <— Rr

Нема

2

5

ST

X+, Rr

Запис у пам’ять даних з регістра методом непрямої адресації і постінкрементація

(X) <— Rr, X <— X + 1

Нема

2

5

ST

-X, Rr

Предекрементація і потім запис у пам’ять даних з регістра методом непрямої адресації

X <— X - 1, (X) <— Rr

Нема

2

5

ST

Y, Rr

Запис у пам’ять даних з регістра методом непрямої адресації

(Y) <— Rr

Нема

2

5

ST

Y+, Rr

Запис у пам’ять даних з регістра методом непрямої адресації і постінкрементація

(Y) <— Rr, Y <— Y + 1

Нема

2

5

ST

-Y, Rr

Предекрементація і потім запис у пам’ять даних з регістра методом непрямої адресації

Y <— Y - 1, (Y) <— Rr

Нема

2

5

STD

Y+q,Rr

Запис у пам’ять даних з регістра методом непрямої адресації зі зміщенням

(Y + q) <— Rr

Нема

2

5

ST

Z, Rr

Запис у пам’ять даних з регістра методом непрямої адресації

(Z) <— Rr

Нема

2

5

ST

Z+, Rr

Запис у пам’ять даних з регістра методом непрямої адресації і постінкрементація

(Z) <— Rr, Z <— Z + 1

Нема

2

5

ST

-Z. Rr

Предекрементація і потім запис у пам’ять даних з регістра методом непрямої адресації

Z <— Z - 1, (Z) <— Rr

Нема

2

5

STD

Z+q,Rr

Запис у пам’ять даних з регістра методом непрямої адресації зі зміщенням

(Z + q) <— Rr

Нема

2

5

STS

k, Rr

Запис у пам’ять даних регістра методом прямої адресації

(k) <— Rr

Нема

2

5

LPM

 

Читання з пам’яті програм

R0 <— (Z)

Нема

3

LPM

Rd, Z

Читання з пам’яті програм

Rd <— (Z)

Нема

3

LPM

Rd, Z+

Читання з пам’яті програм і наступною постінкрементацією

Rd <— (Z), Z <— Z+1

Нема

3

ELPM

 

Розширене читання з пам’яті програм

R0 <— (RAMPZ:Z)

Нема

3

ELPM

Rd, Z

Розширене читання з пам’яті програм

Rd <— (RAMPZ:Z)

Нема

3

ELPM

Rd, Z+

Розширене читання з пам’яті програм наступною постінкрементацією

Rd <— (RAMPZ:Z), RAMPZ:Z <— RAMPZ:Z+1

Нема

3

SPM

 

Запис у пам’ять програм

(Z) <— R1 :R0

Нема

-

IN

Rd, P

Загрузити вмістиме регістрів вводу/виводу у регістр загального призначення

Rd <— P

Нема

1

4

OUT

P, Rr

Записали вмістиме регістру загального призначення у регістр вводу/виводу

P <— Rd

Нема

1

4

PUSH

Rr

“Заштовхати” регістр у стек

STACK <— Rr

Нема

2

4

POP

Rd

“Виштовхати” регістр зі стеку

Rd <— STACK

Нема

2

4

Бітові інструкції і інструкції тестуванні біт

SBI

P,b

Установлення біту в регістрі вводу-виводу

l/O(P,b) <— 1

Нема

2

8

CBI

P,b

Очистка біту в регістрі вводу-виводу

l/O(P,b) <— 0

Нема

2

8

LSL

Rd

Логічний зсув вліво

Rd(n+1) <— Rd(n), Rd(0) <— 0

Z,C,N,V

1

2

LSR

Rd

Логічний зсув вправо

Rd(n) <— Rd(n+1), Rd(7) <— 0

Z,C,N,V

1

2

ROL

Rd

Зсув вліво через переном

Rd(0)<— C,Rd(n+1)<— Rd(n),C <— Rd(7)

Z,C,N,V

1

ROR

Rd

Зсув вправо через переном

Rd(7) <— C,Rd(n)<— Rd(n+1),C <— Rd(0)

Z,C,N,V

1

ASR

Rd

Арифметичний зсув вправо

Rd(n)<— Rd(n+1), n=0..6

Z,C,N,V

1

SWAP

Rd

Обмін тетрадами

Rd(3..0) <— Rd(7..4), Rd(7..4) <— Rd(3..0)

Нема

1

BSET

s

Встановлення біту регістру статусу SREG

SREG(s) <— 1

SREG(s)

1

BCLR

s

Скидання біту регістру статусу SREG

SREG(s) <— 0

SREG(s)

1

BST

Rr, b

Запис біту регістра у біт T регістру статусу SREG

T <— Rr(b)

T

1

BLD

Rd, b

Читання з біту T регістру статусу SREG у регістр

Rd(b) <— T

Нема

1

SEC

 

Встановлення біту переносу (C)

C <— 1

C

1

CLC

 

Очистка біту переносу (C)

C <— 0

C

1

3

SEN

 

Встановлення біту N регістра статусу SREG

N <— 1

N

1

CLN

 

Очищення біту N регістра статусу SREG

N <— 0

N

1

SEZ

 

Встановлення біту Z регістра статусу SREG

Z <— 1

Z

1

CLZ

 

Очищення біту Z регістра статусу SREG

Z <— 0

Z

1

SEI

 

Встановлення біту глобального дозволу переривань

l<— 1

I

1

10

CLI

 

Скидання біту глобального дозволу переривань

l <— 0

I

1

10

SES

 

Встановлення біту S регістра статусу SREG

S <— 1

S

1

CLS

 

Очищення біту S регістра статусу SREG

S <— 0

S

1

SEV

 

Встановлення біту V регістра статусу SREG

V <— 1

V

1

CLV

 

Очищення біту V регістра статусу SREG

V <— 0

V

1

SET

 

Встановлення біту T регістра статусу SREG

T <— 1

T

1

CLT

 

Очищення біту T регістра статусу SREG

T <— 0

T

1

SEH

 

Встановлення біту H регістра статусу SREG

H <— 1

H

1

CLH

 

Очищення біту H регістра статусу SREG

H <— 0

H

1

Інструкції управління мікроконтролером

NOP

 

Немає операції

 

Нема

1

1

SLEEP

 

Перехід у режим сну (Sleep Mode)

(см. подробное описание режима сна)

Нема

1

WDR

 

Скидання сторожового таймеру (WatchDog)

(см. подробное описание сторожевого таймера)

Нема

1

BREAK

 

Перехід у Stop Mode

Только для встроенной отладки

Нема

-

1 Наймолодший біт байту LSB (least significant bit – англ.) позначається номером 0, а найстарший біт байту MSB (most significant bit – англ.) позначається номером 7. Біт під номером 3 – це найстарший біт молодшої тетроди байту, а біт під номером 4 – це наймолодший біт старшої тетроди байту

2 Для чисел без знаку (коли числа представляються у прямому коді і найстарший біт байту приймає участь у формування модуля числа) однобайтними числами є числа з діапазону [0; 255]. У випадку знакових чисел (коли числа представляються у додатковому коді і найстарший байт не приймає участь у формування модуля числа, а відповідає за знак) однобайтними числами є числа з діапазону [-127; 127]. Біт V встановлюється у тому випадку, коли у результаті арифметичної чи логічної операції ми виходимо за цей діапазон.

3 Як правило (зокрема і для асемблера AVR Studio) під словом розуміють ціле число довжиною у два байти

4 Біти встановлюються з урахуванням того, що відбувається додавання константи до двобайтного числа, а не однобайтного.

5 У програмування зміщення вліво означає зміщення у сторону старших розрядів, а зміщення вправо – с сторону молодших розрядів.

6 При відніманні чи додаванні від’ємного числа треба мати на увазі, що від’ємн числа представляються у додатковому коді

7 Зручно при ініціалізації SP при ініціалізації програми вказати SP як адресу останньої комірки SRAM

8 Ця фраза не стосується мікроконтролера ATMEGA128

9 pre означає попередній

10 Декрементація означає зменшення на одиницю

11 post означає після

12 Інкрементація означає збільшення на одиницю

13 Номер відносно першої адреси регістрів вводу/виводу

14 Опис цієї директиви читайте в описі AVR Studio асемблера

15 Опис цієї директиви читайте у описі до лабораторної роботи № 5

16 Існує ще інструкція переходу до підпрограми по абсолютній адресі без обмеження у адресному просторі CALL, абе вона виконується довше. Аналогічно існує налог команді відносного переходу RJMP - JMP

17 К – це кількість проініціалізованих елементів арифметичної прогресії, яке відповідає умові завершення формування наступних елементів арифметичної прогресії, описане вище у програмі виконання роботи

18 Вказівник – це об’єкт (наприклад змінна, чи регістр) який вказує на комірку пам’яті адресного простору

19 Опис цієї директиви читайте в описі AVR Studio асемблера

20 Перший символ (Z, Y чи Z) означає Z, Y чи Z регістр відповідно. Другий символ (L чи Н) є початковим символом слова LOW (молодший) і HIGH (старший) – що означає молодший чи старший байт регістра-вказівника.

21 Можна реалізувати свій варіант алгоритму циклу. Є декілька можливостей його реалізації.

22 Умовами даної лабораторної роботи передбачено що зупинкою підрахунку наступних елементів арифметичної прогресії є:

1-е) наступний елемент арифметичної прогресії стає двобайтних числом (додавання двох однобайтних чисел дає перенос у старші розряди)

2-е) Сума арифметичної прогресії стає трьохбайтним числом. Тобто третій байт суми стає відмінним від нуля.

А це означає, що треба розраховувати, що сума може стати трьохбайтним числом і вести відповідні розрахунки, маючи це на увазі.

23 Умова даної лабораторної роботи передбачає, що всі елементи арифметичної прогресії і різниця арифметичної прогресії є однобайтними числами

24 Оскільки вихід з циклу може бути не тільки при умові, коли всі елементи порініціалізовані, але і коли сума стане трьохбайтним числом чи елемент арифметичної прогресії стане двохбайтним числом, то кількість ітерацій не обов’язково має бути рівна N

25 Наприклад:

stop: rjmp stop

26 При виконанні інструкцій переходу після порівняння треба використовувати тільки ті інструкції, які підходять для знакових чисел і числами можуть бути тільки числа з діапазону

27 зверніть увагу, що параметром є однобайтне беззнакове число. Тому при виконанні інструкцій переходу після порівняння треба використовувати тільки ті інструкції, які підходять для беззнакових чисел і числами можуть бути тільки числа з діапазону

28 Для простоти у тілі циклу можна помістити тільки інструкцію NOP, або будь-яку іншу інструкцію яка не впливає на роботу циклу.

29 Див. зноску 27

30 Див. зноску 28

31 Див. зноску 27

32 Див. зноску 28

33 Див. зноску 27

34 Див. зноску 28

35 Знакова однобайтна змінна, яка мала бути об’явлена згідно п.2 Див. зноску 26

36 Див. зноску 35

37 Див. зноску 28

38 Див. зноску 35

39 Див. зноску 35

40 Див. зноску 28

41 Див. зноску 28

42 Див. зноску 35

43 Див. зноску 35

44 Біт, який відповідає за знак числа

45 Див. зноску 44

46 Множення на – це те саме, що зміщення вліво (у сторону старших біт) на 8 позицій. Іншими словами зміщення на 8 – це переміщення одного байту в старший наступний байт

47 Номер відносно першої адреси регістрів вводу/виводу. Якщо у таблиці не вказано номер регістру вводу видоду. то це значить, що даний регістр відноситься до розширених регістрів вводу-виводу і доступитися до ним можна з допомогою відносної адресації через регістри X, Y і Z, а інструкції IN і OUT для них не підходять. Якщо ж номер регістру вводу-виводу вказаний, то цей регістр відноситься рдо регістрів вводу-виводу і до них можна використовувати як інструкції IN і OUT, так і методами непрямої адресації, як для розширених регістрів вводу виводу.

Зверніть увагу на те, що в інструкціях IN і OUT вказується не адреса комірки регістра у пам’яті даних. а номер регістра. При доступі до будь-якого регістра методом непрямої адресації через регістри X, Y і Z треба вказувати адресу комірки пам’яті даних, а не номер регістру!!!

48 Цей режим не використовується у даній лабораторній роботі, тому опис його опущений

49 Див. зноску 48

50 Real Time Clock – годинник реального часу

51 Див зноску 47 лабораторної роботи № 8 «Вивчення програмування паралельного порту вводу-виводу мікроконтролера AVR»

52 Цю операцію треба виконати так, щоб інші біти регістру управління таймером-лічильником 0 залишилися незміненими. Тобто треба зчитати регістр управління TCCR0 у регістр загального призначення, потім змінити відповідні біти і змінений регістр загального призначення знову записати у регістр вводу-виводу TCCR0

53 Про регістр TIFR і його біти читайте у теоретичному матеріалі до цієї лабораторної роботи

54 Методика аналогічна, як у лабораторній роботі № 9

55 Цей пункт є обов’язковим тільки у тому випадку, коли у таблиці переривань реалізовано перехід на цей обробник

56 Другу breakpoint треба помістити не у підпрограмі очистки біту OCF0 (бо цю підпрограму ми видалили для цієї лабораторної роботи, так як цей біт автоматично очищується при генерації переривання при встановленні цього біту), а у обробнику переривання

1