Scopul lucrarii:
1) Initierea in programarea microconttrolere in limbajul C.
2) Programe cu intreruperi in limbajul C.
3) Mixarea codului assembler cu C.
Sarcina lucrarii:
Să se elaboreze un program in limbajul C, care ar permite citirea unei taste introduse de la o tastatura si afisarea caracterului selectat.
Notiuni teoretice:
O întrerupere reprezintă un semnal sincron sau asincron de la un periferic, ce semnalizează apariţia unui eveniment care trebuie tratat de către procesor.
Mecanismul de prelucrare a intreruperii
Întreruperile hardware au fost introduse pentru a se elimina buclele pe care un procesor ar trebui sa le facă în aşteptarea unui eveniment de la un periferic. Folosind un sistem de întreruperi, perifericele pot atenţiona procesorul în momentul producerii unei întreruperi (RTI), acesta din urma fiind liber să-şi ruleze programul normal în restul timpului şi să îşi întrerupă execuţia doar atunci când este necesar.
Pentru ca o subrutină să fie accesată sunt necesare următoarele condiţii:
1) efectul de întrerupere;
2) întreruperea trebuie să fie activă în dependenţă de modulul periferic care generează întreruperea (există biţi specializaţi pentru activarea întreruperii de la acest periferic);
3) întreruperea generală trebuie să fie permisă;
Algoritmul unei întreruperi
Codul pentru execuţie la apariţia unei întreruperi se grupează într-o subrutină similară cu subrutina normală, diferenţa e că ea se termină cu comanda reti, care concomitent setează bitul I din registrul SREG.
Pentru a configura întreruperile se folosesc următorii regiştri:
1) GICR – General Interrupt Control Register - registrul care este destinat activării sau dezactivării unei anumite întreruperi externe:
2) GIFR – General Interrupt Flag register – în acest registru se setează biţii în cazul apariţiei unei întreruperi. Dacă biţii sunt setaţi manual, aceasta va porni mecanismul de prelucrare a întreruperii date:
3) MCUCR – General Interrupt Control Register – registrul care este destinat setării.
Universitatea Tehnica a Moldovei
Facultatea Calaculatoare, Informatica si Microelectronica
Catedra Microelectronica si Ingineria Biomedicala
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.