№3 жұмыс. AVR микроконтроллерінің ішкі үзілісі
Жұмыстың мақсаты
Atmega
8535 микроконтроллерінің ішкі ұйымының инициивтік санымен
танысу. Ішкі сигналдардың бағдарламалық жұмысын құру және шегеру
Жұмысқа түсініктеме
Берілген мәнді орындау үшін орташа жағдайдағы тәсілді үзіліссіз ішкі
анықтылығын немесе микроконтроллердің үзілісін тудыру кезінде PC
командалық счетчигінде сақталады және векторлық үзіліске қатысты мекен
жайға жіберіледі. Сол мекен-жайға бағдарламаны үзіліссіз өңдеуге кеткен үнсіз
команда құрылады. Соңғы команда бағдарламадан тыс үзіліссіз өңдеу RETI
команда арқылы болуы мүмкін, негізгі бағдарламаны қайта қамтамасыз ететін
және счетчиктік команданың сақталуын қайта өңдеу үшін.
Үзіліссіз қоректену санының жиілігінде микроконтроллерлердің жүйесінің
перифериялық бөлінісінің құрылуы, үзіліс санының нақты моделіне қатысты
болады.
AVR
микроконтроллерлерінің
барлығы
Mega
жанұялық
микроконтроллерінің көпдәрежелі жүйенің үзіліссіздіктің пайда болуы.
Бағдарламаның адрестік жадының аз мекен-жайы, $0000 мекен-жайынан
бастап, векторлық үзіліссіз осы кестеде келтірілген. Әр үзіліссіз үшін мекен-
жайы осы кестеде көрсетілген, үзіліссіз пайда болуы кезінде счетчик
командасын жүктейді. Вектор дәрежесі кестеде көрсетілген және үзіліссіз
қамтамасыз ету мекен-жай аз болса соғұрлым үзіліссіз жоғары болады.
Векторлық үзіліссіз өлшемі микроконтроллерлік бағдарлама жадкөлеміне
қатысты және модел үшін 1 байтты құрайды. Өткізгішке қатысты
бағдарламадан тыс үзіліссіздікті өңдеуге RJMP командасы қолданылады.
Барлық аппараттарды жіберу үшін үзіліссіз жіберудің SREG регистіріндегі «1»
флаг I орнатылады бұл флагты бұғаттау үшін «0» орнатылады.
Mega микроконтроллерлік жанұясының барлық практикалық түрге кестеде
вектордың үзіліссіздігі өзгеріссіз қалуы мүмкін. Кестеде бағдарламаның басты
жадында ғана орын алуы мүмкін және де жүктеу аумағының басында
бағдарламаны орындау кезінде кестені араластырудың салыстырмалылығы
негізсіз болуы мүмкін.
Кестені салыстырып басқарудың үзіліссіздігі GICR регистірінің екілік кіріс
разрядынан тұрады: IVSEL(1-ші разряд) и IVCE (0-дік разряд). IVSEL
флагының дәрежесі бағдарлама жадында кесте дәрежесін айқындайды. Егер
флаг «0»-ге ауытқыса ,кестеде векторлық үзіліс, бағдарлама жадының басына
орналасады, егер «1» флагы-жүктеме аумағы басында орнатылған болса.
Жүктеме аумағы басталу мекенінің нақты мәні BOOTSZ1 және BOOTSZO
конфигурациялық ұяшықтарын орналастыруға қатысты болады. IVCE разряды
IVSEL флагын өзгерту үшін белгіленген
Кестедегі векторлық үзіліссіз мәнін өзгерту үшін IVCE «1» разрядын
орналастыру керек, сосын келесі төрт циклдік машиналарды IVSEL разрядында
талап етілген мәнге апару. IVCE разряды «0»-ге ысырылады. Қарама-қарсы
жағдайда IVCE разряды төрт циклдік машиналарын аппаратпен ысырады,
IVSEL флагының алдағы өзгерісін болдырмау.
30
Жазылған үзіліссіз кезектің уақытын орындау IVCE флагын тастаудан
кейін автоматты түрде орындалады және бұғатталады. I флагының SREG
регистрінің жағдайы бұл жерде өзгереді.
Кесте көлемі микроконтроллерлер моделіне қатысты болады. ATmega8535
микроконтроллерінің векторлық үзіліссіз таралымы кестеде келтірілген.
Векторлардың үзіліссіздігін араластыру кезінде жүктеу аумағының мәніне тең,
кестеде жүктеу аумағы мекенінің бастапқы мәні кестеде көрсетілген.
Кесте 1
Atmega 8535
векторының үзіліссіздік кестесі
№ вектор
үзіліссіздігі
Қоректену
Жазылуы
Мекені
1
RESET
Микроконтроллерлерді жіберу
$0000
2
INTO
Ішкі үзіліссіздік 0
$0001
3
INTI
Ішкі үзіліссіздік 1
$0002
4
TIMER2 COMP
Таймер сәйкестігі/ Т2 счетчик
$0003
5
TIMER2 OVF
Таймер толастауы/ Т2 счетчик
$0004
6
TIMER1 CAPT
Таймерді ұстау/ Т1 счетчик
$0005
7
TIMER 1
COMPA
«А» таймеріне ұқсауы/ Т1 счетчик
$0006
8
TIMER 1
COMPB
«В» таймеріне ұқсауы/ Т1 счетчик
$0007
9
TIMER1 OVF
Таймер толастауы/ Т1 счетчик
$0008
10
TIMERO OVF
Таймер толастауы/ ТО счетчик
$0009
11
SPI, STC
SPI
арқылы жіберуболады завершена $000А
12
USART, RXC
USART,
қабылдау болды
$000В
13
USART, UDRE USART
регистр мәліметтері бос
S000C
14
USART, TXC
USART,
тарату болды
S000D
15
ADC
АСТ белгіленуі болды
$000Е
16
EE RDY
EEPROM,
дайын
S000F
17
ANA COMP
Аналогтық компаратор
$0010
18
TWI
TWI
модулінен үзіліссіз
$0011
19
INT2
Ішкі үзіліссіз 2
$0012
20
TIMERO COMP
Таймер ұқсауы / ТО счетчик
$0013
21
SPM RDY
SPM
дайындығы
$0014
I флагында SREG регистрін аппараты үзіліс пайда болған кезде келесі
үзілістерге кедергі келтіреді. Бірақта өңдеу бағдарламасында үзілісті «1» флаг
үзілісі ретінде орнықтыруға болады. Өңдеу үзілісінің бағдарламасының
31
қайтарылуы кезінде (RETI комндасы орындалған кезде) флаг I аппараты түрде
орындалады. Келесі жайтты ескеру керек. Өңдеу үзілісті өңдеу бағдарламасын
қолдану кезінде SREG регитры сақталмайды. Сондықтанда бағдарламаға кірер
кезде бұл регистрды тұтынушы өз еркімен мазмұнын жаттау керек(егерде бұл
керек болса)... және де RETI командасын пайдаланбас бұрын оның мәнін қайта
сақтау керек (үзілістен шығу).
Кестеден көріп тұрғандай контроллер үш сыртқы векторлық үзілісті
қамтиды (сәйкесінше INTO, INTI, INT2). Бұл кіруді сыртқы үзілісті қайта
бағдарлау үшін бұлар қандай сигналдар мен фронт сигналдарына әсер
ететіндігін білу керек (MCUCR және MCUCSR регистр биттерін орнату),бұл
кірудегі үзілісті (GICR регистр биттерін орнату) рұқсат етіледі.
Микроконтроллердің жалпы үзілісін(І флаг бит-7 SREG регистрі «1» -де рұқсат
етілсе, ал «0» де рұқсат етілмейді).
2-
кестеде GICR регистр биттік нұсқаулық рұқсат етілген (Г қосымшадан
қараңыз).
Кесте 2
GICR
регистр разряды
Разряд Аталуы
Жазылуы
7
INT1
INT1
үзіліссіздігінің біріншілігіне жіберіледі.Егер бұл
разрядта 1блог жазылған және I флагы SREG регистрында
«1» орналасқан INT1 беру кезінде ішкі үзіліссіз
орындалады.Үзіліссіз генерлеудің шарты ISC01 және
ISC00
разрядын MCUCR регистрында ұстап тұрады.
6
INTO
INTO үзіліссіздігінің біріншілігіне жіберіледі.Егер бұл
разрядта 1лог жазылған және I флагы SREG регистрында
«1» орналасқан INTO беру кезінде ішкі үзіліссіз
орындалады. Үзіліссіз генерлеудің шарты ISC01 және
ISC00 разрядын MCUCR регистрында ұстап тұрады.
5
INT2
INT
2 үзіліссіздігінің біріншілігіне жіберіледі.Егер бұл
разрядта 1блог жазылған және I флагы SREG регистрында
«1» орналасқан INT2 беру кезінде ішкі үзіліссіз
орындалады.Үзіліссіз генерлеудің шарты ISC2 разрядын
MCUCR
регистрында ұстап тұрады.
3-
ші кестеде MCUCR регистрінің биттері INTO және INT1 шығысындағы
генерациялық үзіліссіз шарты көрсетілген..
32
Кесте 3
Генерацияның ішкі үзіліссіз шартын анықтау
Разряд Атауы
Жазылуы
3,2
ISC11,
ISC10
INT1
генерацияның ішкі үзіліссіздік шартын
келесі түрде анықтайды:
ISC11 ISC10
Шарт
0
0
INT1
кезінде төменгі дәреже беру
1
0
INT2
Фронт сигналының берілу кезінде
құлдырауы құлдырауы
1
1
INT2
Фронт сигналының берілу кезінде
1,0
ISC01,
1SC00
INT
О генерацияның ішкі үзіліссіздік шартын
келесі түрде анықтайды:
1SC01 ISC00
Шарт
0
0
INTO
кезінде төменгі дәреже беру
1
0
INT2
Фронт сигналының берілу кезінде
құлдырауы құлдырауы
1
1
INT2
Фронт сигналының берілу кезінде
Егер INT2 үзіліссіз жіберілсе,онда ISC2 флагы (бит 4) MCUCSR
регистрінің «О» үзіліссіздіктің келген шартын анықтайды – INT2 фронт
сигналының берілу кезінде құлдырауы,«1» - INT2 фронт сигналының берілу
кезінде жоғарлауы
Флагтардың өзі GIFR регистрінің үзіліссіздігінде орналасады. (Г
қосымшадан қараңыз) және 4-ші кестеде көрсетілген
Кесте 4
GIFR
регистрінің разряды
Разря
Аталуы
Жазылуы
7
INTF1 INT1
үзіліссіздігінің ішкі флагы. Егер INT1 беріліс кезінде мәні
үзіліссіздіктің ішкі сұранысына ие, бұл разряд «1» де
орналасқан.Флаг аппаратты түрде бағдарламаны өңдеп
үзіліссіз жіберу кезінде тасталады. INTF1 флаг жіберілген,егер
INT1 кезінде генерация үзіліссіздігі төменгі дәрежеде болған
жағдайда.
6
INTF0 INT
О үзіліссіздігінің ішкі флагы. Егер INTО беріліс кезінде
мәні үзіліссіздіктің ішкі сұранысына ие ,бұл разряд «1» де
орналасқан.Флаг аппаратты түрде бағдарламаны өңдеп
үзіліссіз жіберу кезінде тасталады. INTF0 флаг жіберілген,егер
INTО кезінде генерация үзіліссіздігі төменгі дәрежеде болған
жағдайда.
33
5
INTF2 INT
2 үзіліссіздігінің ішкі флагы. Егер INT2 беріліс кезінде мәні
үзіліссіздіктің ішкі сұранысына ие, бұл разряд «1» де
орналасқан.Флаг аппаратты түрде бағдарламаны өңдеп
үзіліссіз жіберу кезінде тасталады. INTF2 флаг жіберілген,егер
INT2 кезінде генерация үзіліссіздігі төменгі дәрежеде болған
жағдайда.
Достарыңызбен бөлісу: |