Documente Academic
Documente Profesional
Documente Cultură
1.
Sa se realizeze din punct de vedere software blocul de comanda al unui lift cu 4 niveluri
(parter si 3 etaje) cu urmatoarele functii:
Exista un senzor, pe 8 biti, care indica la ce etaj se afla liftul in orice moment de
timp. Nu se cer functiile necesare actionarii electromecanice a liftului (aceste
functii vor fi considerate ca fiind date).
Se cer:
- Graful procesului secvential care implementeza blocul de comanda
- Codul in limbaj C, asociat grafului
- Toate explicatile necesare pentru implementarea propusa
Graful propus:
Codul propus:
switch (Q)
{
case 0:
{
// verificare daca s-a ajuns la un etaj (liftul nu se afla intre etaje)
// actionarea corespunzatoare a liftului in functie de comanda
// comenzile sint tratate la rind de la 0 la 3
if (senet>=0)
{
if (CDA[i]=1)
{
if ((i-senet) == 0) STOP();
if ((i-senet) > 0) UP();
if ((i-senet) < 0) DOWN();
CDA[i]=0;
out = (out | (~afis_CDA[i]); // CDA[i] in 1 logic
portout(ADROUT, out);
i=(i+1)%3;
}
}
// determinare alarma
// inregistrare comanda 0
case 2:
{
CDA[0]=1;
Q=12;
break;
}
// eliberare buton SW1
case 3:
{
if ((in & 0x02) !=0 ) Q=4;
break;
}
// inregistrare comanda 1
case 4:
{
CDA[1]=1;
Q=12;
break;
}
// inregistrare comanda 2
case 6:
{
CDA[2]=1;
Q=12;
break;
}
// inregistrare comanda 3
case 8:
{
CDA[3]=1;
Q=12;
break;
}
// afisare CDA
case 12:
{
afiseaza_CDA();
Q=0;
break;
}
}
}
// Functile utilizate
Daca ecoul devine sesizabil la o intirziere de peste 300ms, cit ar trebui sa fie frecventa de
esantionare?
Definirea constantelor:
// intirzierea maxima
#define N 4000
//0.125 in 1.15
#define a1 0x1000
//0.0625 in 1.15
#define a2 0x0800
Initializari
// linia de intirziere
i0=delay;
l0=N+1;
m0=1;
m1=1600; // 4000-2400
m2=-1600;
Secventa de prelucrare
// citeste x(n)
ay0=dm(input);
my0=a2;
my1=a1;
3.
a) Precizati rolul predictorului de salt intr-un microprocessor cu pipe-line si evaluati
utilitatea acestui predictor daca adincimea pipe-line este 3 sau 20.
b) Explicati rolul paginarii intr-o schema de adresare cu segmente paginate. De ce nu se
utilizeaza doar segmentarea?