Page 31 - Microcontrolere - Indrumator de laborator
P. 31
resurse interne integrate specializate: porturi seriale, module de comparație, convertor
analog digital, circuite de temporizare etc. Schema de principiu în care sunt indicate
strict doar semnalele de întrerupere necesare aplicației studiată în această lucrare de
laborator este indicată în figura următoare.
Se poate remarca în figura următoare că o întrerupere, semnal logic care
indică în timp real apariția unui eveniment, ca să ajungă la unitatea centrală, trebuie să
parcurgă mai multe nivele de validare, bazate pe logica programului care le folosește.
Astfel, se observă că evenimentul, numărarea unui anumit număr de impulsuri, cu o
scalare și o postscalare impusă de către utilizator, este indicată prin setarea bitului
TMR2IF din registrul cu funcție specială PIR1 din memoria de date. Cu toate acestea,
această informație, întreruperea propriu zisă, va ajunge la unitatea centrală CPU doar
dacă sunt realizate trei validări: validarea întreruperii (la nivel de periferic) cu ajutorul
bitului de validare TMR2IE din registrul PIE1, validarea tuturor întreruperilor (la nivel
de grup de periferice) care provin de la toate circuitele periferice ale unității centrale,
printre care și modulul de temporizare Timer2, cu ajutorul bitului PEIE din registrul
INTCON, respectiv validarea întregului sistem de întreruperi cu ajutorul bitului de
validare globală a întreruperilor GIE care se găsește tot în registrul INTCON din
memoria de date a microcontrolerului.
alte întreruperi alte întreruperi
TMR2IF
TMR2IE CPU
PEIE GIE
INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF
7 6 5 4 3 2 1 0
PIE1 - ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE
7 6 5 4 3 2 1 0
PIR1 - ADIF RCIF TXIF SSPIF CPP1IF TMR2IF TMR1IF
7 6 5 4 3 2 1 0
Fig.3.2. Structura sistemului de întreruperi aferentă întreruperii TMR2IF
Pentru ca întreruperea TMR2IF să ajungă la CPU (unitatea centrală de
prelucrare), biții TMR2IE, PEIE și GIE trebuie să aibă valori logice 1. La oricare alt
nivel, dacă valoarea bitului de validare a întreruperii este nul, întreruperea TMR2IF nu
mai ajunge la CPU.
Este important de remarcat faptul că imediat după acceptarea unei întreruperi
de către CPU, microcontrolerul cedează execuția programului curent și încarcă
28