Заманауи микроконтроллер


№3 жұмыс. AVR микроконтроллерінің ішкі үзілісі



Pdf көрінісі
бет21/64
Дата31.12.2021
өлшемі3,85 Mb.
#21593
1   ...   17   18   19   20   21   22   23   24   ...   64
Байланысты:
Tleshova Zamanaui mikrokontroller

№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 
векторының үзіліссіздік кестесі 
 
№ вектор 
үзіліссіздігі 
Қоректену 
Жазылуы 
Мекені 

RESET 
Микроконтроллерлерді жіберу 
$0000 

INTO 
Ішкі үзіліссіздік 0 
$0001 

INTI 
Ішкі үзіліссіздік  1 
$0002 

TIMER2 COMP 
Таймер сәйкестігі/ Т2 счетчик 
$0003 

TIMER2 OVF 
Таймер толастауы/ Т2 счетчик 
$0004 

TIMER1 CAPT 
Таймерді ұстау/ Т1 счетчик 
$0005 

TIMER 1 
COMPA 
«А» таймеріне ұқсауы/ Т1 счетчик 
$0006 

TIMER 1 
COMPB 
«В» таймеріне ұқсауы/ Т1 счетчик 
$0007 

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 
регистр разряды 
 
 
Разряд  Аталуы 
Жазылуы 

INT1 
INT1 
үзіліссіздігінің  біріншілігіне  жіберіледі.Егер  бұл 
разрядта 1блог жазылған және I флагы SREG регистрында 
«1»  орналасқан  INT1  беру  кезінде  ішкі  үзіліссіз 
орындалады.Үзіліссіз  генерлеудің  шарты  ISC01  және  
ISC00  
разрядын MCUCR регистрында ұстап тұрады. 

INTO 
 
INTO  үзіліссіздігінің  біріншілігіне  жіберіледі.Егер  бұл 
разрядта 1лог  жазылған және  I флагы  SREG регистрында 
«1»  орналасқан  INTO  беру  кезінде  ішкі  үзіліссіз 
орындалады.  Үзіліссіз  генерлеудің  шарты  ISC01  және  
ISC00  разрядын MCUCR регистрында ұстап тұрады. 

INT2 
INT
2  үзіліссіздігінің  біріншілігіне  жіберіледі.Егер  бұл 
разрядта 1блог жазылған және I флагы SREG регистрында 
«1»  орналасқан  INT2  беру  кезінде  ішкі  үзіліссіз 
орындалады.Үзіліссіз  генерлеудің  шарты    ISC2  разрядын 
MCUCR 
регистрында ұстап тұрады. 
 
3-
ші кестеде MCUCR регистрінің биттері INTO және  INT1 шығысындағы 
генерациялық үзіліссіз шарты көрсетілген.. 
 


32 
 
Кесте 3  
 
Генерацияның ішкі үзіліссіз шартын анықтау 
 
Разряд  Атауы 
Жазылуы 
3,2 
ISC11, 
ISC10 
INT1 
генерацияның ішкі үзіліссіздік шартын 
келесі түрде анықтайды: 
ISC11  ISC10 
Шарт  


INT1 
кезінде төменгі дәреже беру  


INT2
Фронт  сигналының  берілу  кезінде 
құлдырауы құлдырауы  


INT2
Фронт  сигналының  берілу  кезінде 
  
1,0 
ISC01, 
1SC00 
INT
О генерацияның ішкі үзіліссіздік шартын  
келесі түрде анықтайды: 
1SC01  ISC00 
Шарт 


INTO 
кезінде төменгі дәреже беру 


INT2 
Фронт  сигналының  берілу  кезінде 
құлдырауы құлдырауы  


INT2 
Фронт  сигналының  берілу  кезінде 
  
 
Егер  INT2  үзіліссіз  жіберілсе,онда  ISC2  флагы  (бит  4)  MCUCSR  
регистрінің  «О»  үзіліссіздіктің  келген  шартын  анықтайды  –  INT2  фронт 
сигналының  берілу  кезінде  құлдырауы,«1»  -  INT2  фронт  сигналының  берілу 
кезінде жоғарлауы   
Флагтардың  өзі  GIFR  регистрінің  үзіліссіздігінде  орналасады.  (Г 
қосымшадан қараңыз) және 4-ші кестеде көрсетілген 
 
Кесте 4  
GIFR 
регистрінің разряды 
 
Разря
 
Аталуы 
Жазылуы 

INTF1  INT1 
үзіліссіздігінің ішкі флагы. Егер INT1 беріліс кезінде мәні 
үзіліссіздіктің  ішкі  сұранысына  ие,  бұл  разряд  «1»  де 
орналасқан.Флаг  аппаратты  түрде  бағдарламаны  өңдеп 
үзіліссіз жіберу кезінде тасталады. INTF1 флаг жіберілген,егер 
INT1  кезінде  генерация  үзіліссіздігі  төменгі  дәрежеде  болған 
жағдайда.  

INTF0  INT
О  үзіліссіздігінің  ішкі  флагы.  Егер  INTО  беріліс  кезінде 
мәні  үзіліссіздіктің  ішкі  сұранысына  ие  ,бұл  разряд  «1»  де 
орналасқан.Флаг  аппаратты  түрде  бағдарламаны  өңдеп 
үзіліссіз жіберу кезінде тасталады. INTF0 флаг жіберілген,егер 
INTО  кезінде  генерация  үзіліссіздігі  төменгі  дәрежеде  болған 
жағдайда.  


33 
 

INTF2  INT
2 үзіліссіздігінің ішкі флагы. Егер INT2 беріліс кезінде мәні 
үзіліссіздіктің  ішкі  сұранысына  ие,  бұл  разряд  «1»  де 
орналасқан.Флаг  аппаратты  түрде  бағдарламаны  өңдеп 
үзіліссіз жіберу кезінде тасталады. INTF2 флаг жіберілген,егер 
INT2  кезінде  генерация  үзіліссіздігі  төменгі  дәрежеде  болған 
жағдайда. 
 


Достарыңызбен бөлісу:
1   ...   17   18   19   20   21   22   23   24   ...   64




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет