ORG - Установить положение в сегменте

Директива ORG устанавливает счётчик положения равным заданной величине, которая передаётся как параметр. Для сегмента данных она устанавливает счётчик положения в SRAM (ОЗУ), для сегмента программ это программный счётчик, а для сегмента EEPROM это положение в EEPROM. Если директиве предшествует метка (в той же строке) то метка размещается по адресу указанному в параметре директивы. Перед началом компиляции программный счётчик и счётчик EEPROM равны нулю, а счётчик ОЗУ равен 32 (поскольку адреса 0-31 заняты регистрами). Обратите внимание что для ОЗУ и EEPROM используются побайтные счётчики а для программного сегмента - пословный.

Синтаксис:
.ORG выражение

Пример:
.DSEG ; Начало сегмента данных

.ORG 0x37 ; Установить адрес SRAM равным 0x37

variable: .BYTE 1 ; Зарезервировать байт по адресу 0x37H

 

.CSEG
.ORG 0x10 ; Установить программный счётчик равным 0x10

mov r0,r1 ; Данная команда будет размещена по адресу 0x10

 

SET - Установить переменный символический эквивалент выражения.

Директива SET присваивает имени некоторое значение. Это имя позднее может быть использовано в выражениях. Причем в отличии от директивы EQU значение имени может быть изменено другой директивой SET.

Синтаксис:
.SET имя = выражение

Пример:
.SET io_offset = 0x23

.SET porta = io_offset + 2

.CSEG ; Начало кодового сегмента

clr r2 ; Очистить регистр r2

out porta,r2 ; Записать в порт A

Выражения

Компилятор позволяет использовать в программе выражения, которые могут состоять операндов, операторов и функций. Все выражения являются 32-битными.

Операнды

Могут быть использованы следующие операнды:

· Метки определённые пользователем (дают значение своего положения).

· Переменные определённые директивой SET

· Константы определённые директивой EQU

· Числа заданные в формате:

o Десятичном (принят по умолчанию): 10, 255

o Шестнадцатеричном (два варианта записи): 0x0a, $0a, 0xff, $ff

o Двоичном: 0b00001010, 0b11111111

o Восьмеричном (начинаются с нуля): 010, 077

· PC - текущее значение программного счётчика (Programm Counter)

 

Набор инструкций

 

  Мнемокод   Операнды     Описание     Действие     Флаги Количество машинных циклов
Арифметические и логические инструкции
ADD1 Rd, Rr Сложить два регистра Rd =Rd + Rr Z,C,N,V,H
ADC Rd, Rr Сложить два регистра с переносом Rd = Rd + Rr + C Z,C,N,V,H
ADIW Rdl,K Сложить слово с константой Rdh:Rdl = Rdh:Rdl + K Z,C,N,V,S
SUB Rd, Rr Вычесть два регистра Rd=Rd - Rr Z,C,N,V,H
SUBI Rd, K Вычесть константу из регистра Rd=Rd - K Z,C,N,V,H
SBC Rd, Rr Вычесть два регистра с учетом переноса Rd=Rd - Rr - C Z,C,N,V,H
SBCI Rd, K Вычесть константу из регистра с учетом переноса Rd=Rd - K - C Z,C,N,V,H
SBIW Rdl,K Вычесть константу из слова Rdh:Rdl= Rdh:Rdl-K Z,C,N,V,S
AND Rd, Rr Логическое И между регистрами Rd=Rd&Rr Z,N,V
ANDI Rd, K Логическое И между регистром и константой Rd=Rd&K Z,N,V
OR Rd, Rr Логическое ИЛИ между регистрами Rd=Rd v Rr Z,N,V
ORI Rd, K Логическое ИЛИ между регистром и константой Rd=Rd v K Z,N,V
EOR Rd, Rr Искл. ИЛИ между регистрами Rd=Rd  Rr Z,N,V
COM Rd Дополнение до 0b11111111 ($FF), инверсия Rd=$FF - Rd Z,C,N,V
NEG Rd Дополнение до 0b00000000 ($00) Rd=$00 - Rd Z,C,N,V,H
SBR Rd, K Установка бит (бита) в регистре Rd=Rd v K Z,N,V
CBR Rd, K Сброс бит (бита) в регистре Rd=Rd · ($FF - K) Z,N,V
INC Rd Инкремент Rd=Rd + 1 Z,N,V
DEC Rd Декремент Rd=Rd - 1 Z,N,V
TST Rd Проверка на ноль или минус Rd=Rd . Rd Z,N,V
CLR Rd Сброс регистра Rd=Rd-Rd Z,N,V
SER Rd Установка регистра Rd=$FF Нет
MUL Rd, Rr Умножение без знака R1:R0=RdxRr Z, C
MULS Rd, Rr Умножение со знаком R1:R0=RdxRr Z, C
MULSU Rd, Rr Умножение знакового с беззнаковым числом R1:R0=Rd x Rr Z, C
FMUL Rd. Rr Дробное умножение без знака R1:R0= (RdxRr) << 1 Z, C
FMULS Rd, Rr Дробное умножение со знаком R1:R0= (RdxRr) << 1 Z, C
FMULSU Rd, Rr Дробное умножение знакового с беззнаковым числом R1:R0= (RdxRr) << 1 Z, C
Инструкции перехода
RJMP k Относительный переход PC=PC + k +1 Нет
IJMP   Косвенный переход по указателю (Z) PC=Z Нет
JMP k Безусловный переход PC=k Нет
RCALL k Относительный вызов процедуры PC=PC + k + 1 Нет
ICALL   Косвенный вызов процедуры по указателю (Z) PC=Z Нет
CALL k Безусловный вызов процедуры PC=k Нет
RET   Возврат из подпрограммы PC=STACK Нет
RETI   Возврат из прерывания PC=STACK I
CPSE Rd,Rr Сравнение и пропуск, если равно if (Rd = Rr) PC=PC + 2 или 3 Нет 1/2/3
CP Rd,Rr Сравнение Rd-Rr Z, N,V,C,H
CPC Rd,Rr Сравнение с учетом переноса Rd - Rr-C Z, N,V,C,H
CPI Rd,K Сравнение регистра с константой Rd-K Z, N,V,C,H
SBRC Rr,b Пропуск, если бит в регистре сброшен if(Rr(b)=O) PC=PC+2 или 3 Нет 1 /2/3
SBRS Rr, b Пропуск, если бит в регистре установлен if (Rr(b)=1) PC=PC+ 2 или 3 Нет 1/2/3
SBIC P, b Пропуск, если бит в регистре ввода-вывода сброшен if (P(b)=O) PC=PC + 2 или 3 Нет 1 /2/3
SBIS P, b Пропуск, если бит в регистре ввода-вывода установлен if (P(b)=1) PC=PC + 2 или 3 Нет 1 /2/3
BRBS s, k Переход, если флаг состояния установлен if(SREG(s)=1) then PC=PC+k + 1 Нет 1/2
BRBC s, k Переход, если флаг состояния сброшен if(SREG(s)=0) then PC=PC+k + 1 Нет 1 /2
BREQ k Переход, если равно if(Z=1) then PC=PC + k + 1 Нет 1 /2
BRNE k Переход, если не равно if(Z=0) then PC=PC + k + 1 Нет 1 /2
BRCS k Переход, если перенос установлен if(C=1)then PC=PC+k+ 1 Нет 1 /2
BRCC k Переход, если перенос сброшен if(C=0) then PC=PC +k+ 1 Нет 1 /2
BRSH k Переход, если больше или равно if(C=0) then PC=PC+k+ Нет 1 /2
BRLO k Переход, если меньше if(C=1) then PC=PC+k+1 Нет 1 /2
BRMI k Переход, если минус if(N=1) then PC=PC+k + 1 Нет 1 /2
BRPL k Переход, если плюс if(N=0) then PC=PC + k + 1 Нет 1 /2
BRGE k Переход, если больше или равно с учетом знака if(NeV=0) then PC=PC+k+1 Нет 1 /2
BRLT k Переход, если меньше нуля с учетом знака if(NeV=1) then PC=PC+k+ Нет 1 /2
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 Переход, если флаг Т установлен if (T=1) then PC=PC + k +1 Нет 1 /2
BRTC k Переход, если флаг Т сброшен if (T=0) then PC=PC+k+1 Нет 1 /2
BRVS k Переход, если флаг V установлен if (V= ) then PC=PC+k+1 Нет 1 /2
BRVC k Переход, если флаг V сброшен if (V=0) then PC=PC + k+1 Нет 1 /2
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 Нет
MOVW Rd, Rr Перезапись слова между регистрами Rd+1:Rd=Rr+1:Rr Нет
LDI Rd, K Запись константы в регистр Rd=K Нет
LD Rd, X Косвенное считывание из памяти в регистр Rd=(X) Нет
LD Rd, X+ Косвенное считывание из памяти в регистр и инкр. Rd=(X), X=X + 1 Нет
LD Rd,-X Предварительный декремент, а затем косвенное считывание из памяти в регистр X=X - 1, Rd=(X) Нет
LD Rd,Y Косвенное считывание из памяти в регистр Rd=(Y) Нет
LD Rd, Y+ Косвенное считывание из памяти в регистр и инкр. Rd=(Y), Y=Y + 1 Нет
LD Rd,-Y Предварительный декремент, а затем косвенное считывание из памяти в регистр Y=Y - 1, Rd=(Y) Нет
LDD Rd,Y+q Косвенное считывание из памяти в регистр со смещением Rd=(Y + q) Нет
LD Rd, Z Косвенное считывание из памяти в регистр Rd=(Z) Нет
LD Rd, Z+ Косвенное считывание из памяти в регистр и инкр. Rd=(Z),Z=Z+1 Нет
LD Rd.-Z Предварительный декремент, а затем косвенное считывание из памяти в регистр Z=Z - 1, Rd=(Z) Нет
LDD Rd, Z+q Косвенное считывание из памяти в регистр со смещением Rd=(Z + q) Нет
LDS Rd, k Непосредственное чтение из ОЗУ в регистр Rd=(k) Нет
ST X, Rr Косвенная запись (X)=Rr Нет
ST X+, Rr Косвенная запись и послед. инкремент (X)=Rr, X=X + 1 Нет
ST -X, Rr Предв. декремент и косвенная запись X=X - 1, (X)=Rr Нет
ST Y, Rr Косвенная запись (Y)=Rr Нет
ST Y+, Rr Косвенная запись и послед. инкремент (Y)=Rr, Y=Y + 1 Нет
ST -Y, Rr Предв. декремент и косвенная запись Y=Y - 1, (Y)=Rr Нет
STD Y+q,Rr Косвенная запись со смещением (Y + q)=Rr Нет
ST Z, Rr Косвенная запись (Z)=Rr Нет
ST Z+, Rr Косвенная запись и послед. инкремент (Z)=Rr, Z=Z + 1 Нет
ST -Z. Rr Предв. декремент и косвенная запись Z=Z - 1, (Z)=Rr Нет
STD Z+q,Rr Косвенная запись со смещением (Z + q)=Rr Нет
STS k, Rr Непосредственная запись в ОЗУ (k)=Rr Нет
LPM   Чтение из памяти программ R0=(Z) Нет
LPM Rd, Z Чтение из памяти программ Rd=(Z) Нет
LPM Rd, Z+ Чтение из памяти программ и последующий инкремент Rd=(Z), Z=Z+1 Нет
ELPM   Расширенное чтение из памяти программ R0=(RAMPZ:Z) Нет
ELPM Rd, Z Расширенное чтение из памяти программ Rd=(RAMPZ:Z) Нет
ELPM Rd, Z+ Расширенное чтение из памяти программ и последующие инкремент Rd=(RAMPZ:Z), RAMPZ:Z=RAMPZ:Z+1 Нет
SPM   Запись в память программ (Z)=R1 :R0 Нет -
IN Rd, P Считывание из порта ввода-вывода в регистр Rd=P Нет
OUT P, Rr Запись из регистра в порт ввода-вывода P=Rd Нет
PUSH Rr Помещение содержимого регистра в стек STACK=Rr Нет
POP Rd Извлечение из стека в регистр Rd=STACK Нет
Битовые инструкции и инструкции тестирования бит
SBI P,b Установка бита в регистре ввода-вывода l/O(P,b)=1 Нет
CBI P,b Сброс бита в регистре ввода-вывода l/O(P,b)=0 Нет
LSL Rd Логический сдвиг влево Rd(n+1)=Rd(n), Rd(0)=0 Z,C,N,V
LSR Rd Логический сдвиг вправо Rd(n)=Rd(n+1), Rd(7)=0 Z,C,N,V
ROL Rd Вращение влево через перенос Rd(0)= C, Rd(n+1)=Rd(n), C=Rd(7) Z,C,N,V
ROR Rd Вращение вправо через перенос Rd(7)=C, Rd(n)=Rd(n+1), C=Rd(0) Z,C,N,V
ASR Rd Арифметический сдвиг вправо Rd(n)= Rd(n+1), n=0..6 Z,C,N,V
SWAP Rd Обмен тетрадами Rd(3..0)=Rd(7..4), Rd(7..4)=Rd(3..0) Нет
BSET s Установка флага регистра SREG SREG(s)=1 SREG(s)
BCLR s Сброс флага регистра SREG SREG(s)=0 SREG(s)
BST Rr, b Запись бита регистра в T T=Rr(b) T
BLD Rd, b Чтение из T в бит регистра Rd(b)=T Нет
SEC   Установка переноса C=1 C
CLC   Сброс переноса C=0 C
SEN   Установка флага N N=1 N
CLN   Сброс флага N N=0 N
SEZ   Установка флага нуля Z Z=1 Z
CLZ   Сброс флага нуля Z Z=0 Z
SEI   Общее разрешение прерываний L= 1 I
CLI   Общий запрет прерываний l=0 I
SES   Установка флага S S=1 S
CLS   Сброс флага S S=0 S
SEV   Установка флага V в регистре SREG V=1 V
CLV   Сброс флага V в регистре SREG V=0 V
SET   Установка флага T в регистре SREG T=1 T
CLT   Сброс флага T в регистре SREG T=0 T
SEH   Установка флага Н в регистре SREG H=1 H
CLH   Сброс флага Н в регистре SREG H=0 H
Инструкции управления микроконтроллером
NOP   Нет операции   Нет
SLEEP   Перевод в режим сна (см. подробное описание режима сна) Нет
WDR   Сброс сторожевого таймера (см. подробное описание сторожевого таймера) Нет
BREAK   Прерывание Только для встроенной отладки Нет -
             

 

Приложение 3

Таблица П5. Сводная таблица регистров микроконтроллеров

Семейства AVR

Наименование и адрес регистра Разряд 7 Разряд 6 Разряд 5 Разряд Разряд 3 Разряд 2 Разряд 1 Разряд 0
($FF)-Резерв - - - - - - - -
($9E)-Резерв - - - - - - - -
($9D)-UCSR1C Регистр C управления и статуса УСАПП1 - UMSEL1 UPM11 UPM10 USBS1 UCSZ11 UCSZ10 UCPOL1
($9C)-UDR1 Регистр данных УСАПП 1
($9B)-UCSR1A Регистр А управления и статуса УСАПП1 RXC1 TXC1 UDRE1 FE1 DOR1 UPE1 U2X1 MPCM1
($9A)-UCSR1B Регистр B управления и статуса УСАПП1 RXCIE1 TXCIE1 UDRIE1 RXEN1 TXEN1 UCSZ12 RXB81 TXB81
($99)-UBRR1L Младший байт регистра скорости связи УСАПП1
($98)-UBRR1H - - - - Старший байт регистра скорости связи УСАПП1
($97)-Резерв - - - - - - - -
($96)-Резерв - - - - - - - -
($95)-UCSR0C. Регистр C управления и статуса УСАПП0 - UMSEL0 UPM01 UPM00 USBS0 UCSZ01 UCSZ00 UCPOL0
($94)-Резерв - - - - - - - -
($93)-Резерв - - - - - - - -
($92)-Резерв - - - - - - - -
($91)-Резерв - - - - - - - -
($90)-UBRR0H - - - - Ст. байт регистра скорости связи УСАПП0
($8F)-Резерв - - - - - - - -
($8E)-Резерв - - - - - - - -
($8D)-Резерв - - - - - - - -
($8C)-TCCR3C FOC3A FOC3B FOC3C - - - - -
($8B)-TCCR3A COM3A1 COM3A0 COM3B1 COM3B0 COM3C1 COM3C0 WGM31 WGM30
($8A)-TCCR3B ICNC3 ICES3 - WGM33 WGM32 CS32 CS31 CS30
($89)-TCNT3H Таймер-счетчик 3 - Старший байт регистра счетчика
($88)-TCNT3L Таймер-счетчик 3 - Младший байт регистра счетчика
($87)-OCR3AH Таймер-счетчик 3 - Старший байт регистра А порога сравнения
($86)-OCR3AL Таймер-счетчик 3 - Младший байт регистра А порога сравнения
($85)-OCR3BH Таймер-счетчик 3 - Старший байт регистра В порога сравнения
($84)-OCR3BL Таймер-счетчик 3 - Младший байт регистра В порога сравнения
($83)-OCR3CH Таймер-счетчик 3 - Старший байт регистра С порога сравнения
($82)-OCR3CL Таймер-счетчик 3 - Младший байт регистра С порога сравнения
($81)-ICR3H Таймер-счетчик 3 - Старший байт регистра захвата
($80)-ICR3L Таймер-счетчик 3 - Младший байт регистра захвата
($7F)-Резерв - - - - - - - -
($7E)-Резерв - - - - - - - -
($7D)-ETIMSK - - TICIE3 OCIE3A OCIE3B TOIE3 OCIE3C OCIE1C
($7C)-ETIFR - - ICF3 OCF3A OCF3B TOV3 OCF3C OCF1C
($7B)-Резерв - - - - - - - -
($7A)-TCCR1C FOC1A FOC1B FOC1C - - - - -
($79)-OCR1CH Таймер-счетчик 1 - Старший байт регистра С порога сравнения
($78)-OCR1CL Таймер-счетчик 1 - Младший байт регистра С порога сравнения
($77)-Резерв - - - - - - - -
($76)-Резерв - - - - - - - -
($75)-Резерв - - - - - - - -
($74)-TWCR. Регистр управления шиной TWI TWINT TWEA TWSTA TWSTO TWWC TWEN - TWIE
($73)-TWDR. Регистр данных шины TWI Регистр данных двухпроводного последовательного интерфейса
($72)-TWAR. Регистр подчиненного адреса шины TWI TWA6 TWA5 TWA4 TWA3 TWA2 TWA1 TWA0 TWGCE
($71)-TWSR. Регистр состояния TWI TWS7 TWS6 TWS5 TWS4 TWS3 - TWPS1 TWPS0
($70)-TWBR Регистр задания скорости связи двухпроводного последовательного интерфейса
($6F)-OSCCAL Регистр калибровки генератора
($6E)-Резерв - - - - - - - -
($6D)-XMCRA - SRL2 SRL1 SRL0 SRW01 SRW00 SRW11 -
($6C)-XMCRB - - - - - XMM2 XMM1 XMM0
($6B)-Резерв - - - - - - - -
($6A)-EICRA ISC31 ISC30 ISC21 ISC20 ISC11 ISC10 ISC01 ISC00
($69)-Резерв - - - - - - - -
($68)-SPMCSR SPMIE RWWSB - RWWSRE BLBSET PGWRT PGERS SPMEN
($67)-Резерв - - - - - - - -
($66)-Резерв - - - - - - - -
($65)-PORTG - - - PORTG4 PORTG3 PORTG2 PORTG1 PORTG0
($64)-DDRG. Регистр управления направлением порта G - - - DDG4 DDG3 DDG2 DDG1 DDG0
($63)-PING - - - PING4 PING3 PING2 PING1 PING0
($62)-PORTF PORTF7 PORTF6 PORTF5 PORTF4 PORTF3 PORTF2 PORTF1 PORTF0
($61)-DDRF. Регистр управления направлением порта F DDF7 DDF6 DDF5 DDF4 DDF3 DDF2 DDF1 DDF0
($60)-Резерв - - - - - - - -
$3F($5F)-SREG. Регистр управления и статуса МК I T H S V N Z C
$3E($5E)-SPH. Указатель стека (ст. байт) SP15 SP14 SP13 SP12 SP11 SP10 SP9 SP8
$3D($5D)-SPL Указатель стека (мл. байт) SP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0
$3C($5C)-XDIV XDIVEN XDIV6 XDIV5 XDIV4 XDIV3 XDIV2 XDIV1 XDIV0

 

Примечания:

1. Для совместимости с последующими версиями микроконтроллеров рекомендуется в резервные разряды записывать лог. 0. В резервные ячейки памяти не рекомендуется выполнять запись.

2.Некоторые флаги состояния сбрасываются путем записи в них лог. 1. Обратите внимание, что инструкции CBI и SBI работают со всеми разрядами регистра ввода-вывода (чтение-модификация-запись). Инструкции CBI и SBI работают только с регистрами $00…$1F.

 

 

Приложение 4

 

Таблица П6. Векторы сброса и прерываний МК ATmega128

№ вектора Адрес памяти программ Источник Условие возникновения прерывания
$0000 RESET Внешний сброс, сброс при подаче питания, сброс при недопустимом снижении питания, сброс сторожевым таймером и сброс через JTAG-интерфейс
$0002 INT0 Запрос на внешнее прерывание 0
$0004 INT1 Запрос на внешнее прерывание 1
$0006 INT2 Запрос на внешнее прерывание 2
$0008 INT3 Запрос на внешнее прерывание 3
$000A INT4 Запрос на внешнее прерывание 4
$000C INT5 Запрос на внешнее прерывание 5
$000E INT6 Запрос на внешнее прерывание 6
$0010 INT7 Запрос на внешнее прерывание 7
$0012 TIMER2 COMP Срабатывание компаратора таймера-счетчика 2
$0014 TIMER2 OVF Переполнение таймера-счетчика 2
$0016 TIMER1 CAPT Захват фронта таймером-счетчиком 1
$0018 TIMER1 COMPA Срабатывание компаратора А таймера-счетчика 1
$001A TIMER1 COMPB Срабатывание компаратора В таймера-счетчика 1
$001C TIMER1 OVF Переполнение таймера-счетчика 1
$001E TIMER0 COMP Срабатывание компаратора таймера-счетчика 0
$0020 TIMER0 OVF Переполнение таймера-счетчика 0
$0022 SPI, STC Завершение последовательной передачи интерфейсом SPI
$0024 USART0, RX Завершение приема УСАПП 0
$0026 USART0, UDRE Регистр данных УСАПП0 свободен
$0028 USART0, TX Завершение передачи УСАПП 0
$002A ADC Завершение преобразования АЦП
$002C EE READY Готовность EEPROM
$002E ANALOG COMP Аналоговый компаратор
$0030(3) TIMER1 COMPC Срабатывание компаратора С таймера-счетчика 1
$0032(3) TIMER3 CAPT Захват фронта таймером счетчиком 3
$0034(3) TIMER3 COMPA Срабатывание компаратора А таймера-счетчика 3
$0036(3) TIMER3 COMPB Срабатывание компаратора В таймера-счетчика 3
$0038(3) TIMER3 COMPC Срабатывание компаратора С таймера-счетчика 3
$003A(3) TIMER3 OVF Переполнение таймера счетчика 3
$003C(3) USART1, RX Завершение приема УСАПП 1
$003E(3) USART1, UDRE Регистр данных УСАПП1 свободен
$0040(3) USART1, TX Завершение передачи УСАПП1
$0042(3) TWI Двухпроводной последовательный интерфейс
$0044(3) SPM READY Готовность записи в память программ

 

Примечания.

1. Если конфигурационный бит BOOTRST запрограммирован, то микроконтроллер выполняет переход на адрес сброса в загрузочном секторе.

2. Если установлен бит IVSEL в регистре MCUCR, то векторы прерываний перемещаются в начало загрузочного сектор флэш-памяти. В этом случае к адресу каждого вектора прерывания из таблицы прибавляется стартовый адрес загрузочного сектора флэш-памяти.

3. Прерывания по адресам $0030 - $0044 не существуют в режиме совместимости с ATmega103.

 

Приложение 5

Нумерация выводов и типы корпусов микроконтроллеров

семейства AVR

 

ATmega8(L)

 

 

ATmega128

ATmega64

 

ATmega32

 

ATmega16

 
 

 


ATmega169

 

 

ATmega8535

 

ATmega163

 

ATtiny15L

 

ATtiny26

 

ATtiny28

AT90S2313


[1] При написании данного раздела использован материал сайта http://logic-bratsk.ru/radio/micro/atmega128/index.htm

[2] Программная модель процессора - эта совокупность программно-доступных регистров, а функционирование процессора заключается в пересылке данных из одного регистра в другой регистр с преобразованием или без преобразования.

[3] Если векторы прерываний помещаются в загрузочный сектор и бит защиты загрузочного сектора BLB02 запрограммирован, то прерывания будут отключены при выполнении программы в секторе прикладной программы. Если векторы прерываний размещены в прикладном секторе и бит защиты BLB12 запрограммирован, то прерывания становятся отключенными при выполнении программы в загрузочном секторе.

 

[4] Выход аналогового компаратора (ACO) только у таймера-счетчика 1 может выступать в качестве сигнала захвата. У таймера-счетчика 3 эта возможность отсутствует.

 

[5] Терминология интерфейса TWI.

Ведущий -устройство, которое инициирует и прекращает сеанс связи. Сигнал синхронизации SCL всегда генерируется ведущим устройством;

Подчиненный – устройство, которое адресуется ведущим устройством;

Передатчик - устройство, размещающее данные на шине;

Приемник -устройство, считывающее данные с шины.

 

[6] Глава 3 написана совместно с инженером Курбановым Д.С.



/li>3839