luni, 14 ianuarie 2013

Examplu Test de evaluare finala Microprocesoare 2012

In acest post este prezentat un exemplu de test de evaluare pentru Cursul de Microprocesoare, ati putea utiliza acest exemplu pentru a verifica cunostintele in acest domeniu, Am incercat sa cuprindem in el verificarea tuturor temelor principale in ce priveste lucrul cu un microcontroller asa ca arhitectura microcontrollerului, sistemul de comenzi, subrutine, memoria reprezentata de variabile si tablouri, constructii algoritmice si module periferice, in speranta ca va accentua momentele importante a cursului, si va apela la recapitularea lor. Sursele de informare a acest curs sunt atat postarile de pe acest site cat si notitele de curs si orele de laborator din cadrul cursului de Microprocesoare de la Universitatea Tehnica a Moldovei, specialitatile Microelectronica si Inginerie Biomedicala.





1. Sa se prezinte grafic arhitectura nucleului microcontroller-ului din seria AVR. Sa se enumere blocurile componente si destinatia lor, sa se evidentieze interactiunile dintre blocuri.

2. Sa se explice executia in cadrul arhitecturii AVR a unei comenzi aritmetico-logice, a se evidentia flagurile, si modul de modificare a lor.


3. Din setul de comenzi ale microcontrollerului din seria AVR
a. Sa se dea definitia comenzilor: (operanzi, operatie, flaguri afectate/evaluate, explicatie)
AND, CLZ, IN, IJMP, SBRS

b. Sa se potriveasca o comanda pentru realizarea operatiei (operanzi, operatie, flaguri afectate/evaluate)
- Incerementarea valorii unui registru
- salvarea temporara a unui bit din registrul de uz general in bitul T din SREG
- transfer de date dintr-un registru in paltul
- Salt neconditionat indirect
- salt la eticheta daca este egalitate.

4 Realizarea constructiilor algoritmice de baza: conditii, selectie multipla, cicluri

5. Sa se descrie principiul de organizare a programelor cu intreruperi, sa se enumere si sa se explice componentele de baza.

6. Sa se explice modul de functiionare a Modulului periferic TIMERx, regimurile contor, captare si comparare

7. sa se realizeze o implementare prin schema bloc si scventa de cod pentru:

if ( R16 < 34) 
R16 = R16 - R1 
else 
R16 = R16 - 13

8. Sa se scrie o subrutina reentrabila cu parametri, si secventa de cod de apel a subrutinei pentru evaluarea expresiei a = b + 3489, unde  a,b sunt variabile de 16 biti.

9. Sa se scrie o subrutina reentrabila cu parametri, sa se prezinte schema bloc al algoritmului si sa se dea secventa de cod de apel a subrutinei pentru calculul sumei elementelor mai mari ca 7 ale unui tablou. sa se transmita tabloul catre subrutina ca referinta printr-un registru indirect, rezultatul sa fie returnat prin registrii R16:R17,

10 . Sa se scrie secventa de cod pentru configurarea modulele periferice cu ajutorul mastilor conform configuratiilor prezentatre. In acest scop - sa se formeze masca pentru modificarea bitilor prin declaratie de constante cu,  .EQU.  Sa se defineasca un nume pentru un registru de uz general cu directiva  .DEF, sa se scrie comanda pentru setarea bitilor cu masca definita cu .EQU in registrul definit cu .DEF .

Sa se scrie un exemplu al subrutinei de prelucrare a intreruperii daca e cazul.

  • GPIO : 0 – iesire 1, 1 – intrare HiZ , 5 – iesire 0, 6 – intrare pull-up
  • EXT INT0 : generare intrerupere pe front crescator (RISE) la pinul extern INT1.
  • TIMER0 OVF : generare intreruperi pe OVF cu o frecventa de 20kHZ, fck = 8MHz.
  • TIMER1 IC : generare de intrerupere dupa cum urmeaza: sursa de semnal - cadere pe pinul ICP al Microcontrollerului, sursa de clock (CS) - fck/64, activare filtru de zgomote.
  • TIMER1 OC : generare de intrerupere la coincidenta cu OCR1A dupa cum urmeaza - sursa de clock (CS) : fck/1024, setare pin OC1A.
  • TIMER1 PWM : generare semnal PWM la pinul OCR1A. Frecventa de referinta (CS) - fck/64, rezolutia generatorului fiind pe 8 bit, factorul de umplere ~20%
  • AC : genera intreruperi pe frontul descrescator al ACO. sursa de semnal va fi pinul; ADC3,(conectare multiplexor) sursa de referinta Interna.
  • ADC : colectare continua date de pe cnalul ADC4, cu alinierea datelor spre dreapta, sursa de referinta se va lua pinul; extern AREF. Sa se calculeze o valoare valida pentru divizor (ADPS) la fregventa de fck = 8M.