Documente Academic
Documente Profesional
Documente Cultură
Chişinău – 2019
1. Întreruperi hardware
O întrerupere hardware reprezintă un semnal sincron sau asincron de la un
periferic ce semnalizează apariția unui eveniment care trebuie tratat de către
procesor. Tratarea întreruperii are ca efect suspendarea firului normal de execuție
al unui program și lansarea în execuție a unei rutine de tratare a întreruperii
(RTI).
Fig. 2: Pini
întreruperi externe pe capsula ATmega324
Microcontroller-ul oferă posibilitatea mascării întreruperilor prin scrierea pe 0
a bit-ului I din registrul de status (SREG). Valoarea inițială a acestui bit este 0,
deci chiar dacă întreruperile unui periferic sunt activate din unul din registrele
acestuia, ele nu sunt vor fi luate în considerare. Valoarea acestui flag trebuie să fie
1 dacă vrem ca microcontroller-ul sa le trateze. Totodată, la apariția unei
întreruperi, în afară de salvarea stării, procesorul dezactivează întreruperile, iar la
revenirea din rutina de tratare le reactivează. Activarea lor poate fi realizată forțat
și din handler-ul de întrerupere (de exemplu, suntem în handler-ul pt recepția unui
frame pe interfața seriala, și dorim să activăm întreruperile unui timer).
1.1. Tratarea unei întreruperi
… … …
#include <avr/interrupt.h>
ISR(INT0_vect)
...
Întreruperi Software
Clasificare
Noţiunea de întrerupere presupune (aşa cum îi arată şi numele) întreruperea
programului în curs de execuţie şi transferul controlului la o anumită rutină
specifică, numită rutină de tratare, dictată de cauza care a generat întreruperea.
Mecanismul prin care se face acest transfer este, în esenţă, de tip apel de
procedură, ceea ce înseamnă revenirea în programul întrerupt, după terminarea
rutinei de tratare.
Întreruperile se pot clasifica după mai multe criterii, rezultând tipurile ilustrate în
figura următoare:
Aplicații:
int 10h
; afisare mesaj
mov ah,09h
mov dx,offset mesaj
int 21h
4. Realizați o aplicație care să afișeze mesajul „Ai reușit” numai dacă a fost
apăsat un buton al mouse-ului pe zona ocupată de mesajul BUTTON din
programul aplic2.asm