RACUNARSKE PERIFERIJE I INTERFEJSI
I Kolokvijum
25.03.2018.g.




Redni broj testa: 7



OBAVEZNO UNESITE SLJEDECE PODATKE:
Ime:
Prezime:
Broj indeksa: /


NAPOMENE:


Koriscenje mobilnih telefona nije dozvoljeno.
Na racunaru smiju biti aktivni samo prozor sa testom i Calculator.

Ukoliko birate jedan od ponudjenih odgovora:
    - Tacan izbor daje 10%.
    - Netacan izbor daje -5% (negativni poeni).
    - "Ne znam" daje 0.
Ukoliko unosite broj u edit polje:
    - Tacan odgovor daje 10%.
    - Netacan odgovor daje 0.

Test se predaje klikom na taster "PREDAJEM TEST".

U slucaju da student ne moze da preda test iz bilo kojeg razloga, obavezan je da se odmah javi nastavniku, zatim, da prepise na papir redni broj testa, ime, prezime, broj indeksa i rjesenja zadataka koje je uradio i to preda nastavniku.


TEST



P0. Ako se na racunaru izvrsi instrukcija SetLED(28); :

1.upalice se crvena i plava LED na maketi,
2.nece se upaliti ni jedna LED na maketi,
3.upalice se crvena, zuta i zelena LED na maketi,
4.upalice se plava i zelena LED na maketi,
5.Ni jedan ponudjeni odgovor nije tacan
6.Ne znam odgovor


P1. Nakon izvrsavanja instrukcija:

x=0;
if(digitalRead(TASTER))x+=1;
if(digitalRead(PREKIDAC))x+=2;

promjenljiva x ima vrijednost 2. To znaci da je...

1.prekidac otvoren i taster otpusten,
2.prekidac otvoren i taster pritisnut,
3.prekidac zatvoren i taster otpusten,
4.prekidac zatvoren i taster pritisnut,
5.Ni jedan ponudjeni odgovor nije tacan
6.Ne znam odgovor


P2. Dat je sledeci dio programa:
   for(;;)   {
      x=PINC&16+PIND&32;
      if(x==48) {
            printf("\n Nizak nivo tecnosti!");
            outp(port,0);
      }
      else if(x==32) {
            printf("\n Nivo je u propisanim granicama.");
            outp(port,0);
      }
      else if(x==0) {
            printf("\n Visok nivo tecnosti!");
            outp(port,0);
      }
      else if(x==16) {
            outp(port, 1); sleep(2);
      }
   }
Ovaj program obavlja funkciju detektora nivoa sa alarmiranjem neispravnosti pomocu crvene LED. Taster i prekidac predstavljaju senzore nivoa. U ovom resenju uzeto je da senzori ...

1.daju logicku jedinicu kada je tecnost iznad njih pri cemu taster mjeri donju granicu a prekidac gornju
2.daju logicku jedinicu kada je tecnost iznad njih pri cemu prekidac mjeri donju granicu a taster gornju
3.daju logicku nulu kada je tecnost iznad njih pri cemu taster mjeri donju granicu a prekidac gornju
4.daju logicku nulu kada je tecnost iznad njih pri cemu prekidac mjeri donju granicu a taster gornju
5.Ni jedan ponudjeni odgovor nije tacan
6.Ne znam odgovor


P3. Ako su ulazni portovi realizovani u 8 bitnoj grupi, onda je maskiranje potrebno:

1.radi postavljanja bitova na tacnu vrijednost,
2.radi postavljanja portova na zeljenu vrijednost,
3.da se propuste samo bitovi logicke jedinice,
4.da se neinteresantni bitovi postave na nulu,
5.Ni jedan ponudjeni odgovor nije tacan
6.Ne znam odgovor


P4. Program:
for(i=0; i< ??????; i++) {
SetStep(polukorak[i%8]);
delay(CEKANJE);
}
treba da okrene 4 kruga za motor koji ima 64 koraka po krugu. Umjesto ?????? treba da stoji:

Unijeti tacan odgovor:

P5. Donji program okrece koracni motor u jednom smjeru za 20 polukoraka.
int polukorak[8]={*,*,*,*,*,*,*,*}; // zvjezdicama su sakrivene brojne vrijednosti
         for(i=0; i<20; i++){
            SetStep(polukorak[i%????????]);
            delay(CEKANJE);
         }
Da bi ispravno radio umjesto ???????? treba da stoji...

Unijeti tacan odgovor:

P6. Nastavite niz vrijednosti koje se upisuju na izlazni port, kod upravljanja koracnim motorom. 4, 6, ?

Unijeti tacan odgovor:

P7. Dat je dio programa, inkrementalnog davaca sa pracenjem smjera kretanja
switch(staro){
case S0: if(novo==S1) p++;
if(novo==S3) p--;
break;
case S1: if(novo==S2) p++;
if(novo==S0) p--;
break;
case S2: if(novo==S3) p++;
if(novo==S1) p--;
break;
case S3: if(novo==S0) p++;
if(novo==S1) p--;
break;
}
Da bi program ispravno funkcionisao izmijeniti jednu njegovu liniju, i to umjesto:

1.if(novo==S3) p++; staviti if(novo==S0) p++;
2.if(novo==S2) p--; staviti if(novo==S3) p--;
3.if(novo==S1) p--; staviti if(novo==S2) p--;
4.if(novo==S2) p++; staviti if(novo==S3) p++;
5.Ni jedan ponudjeni odgovor nije tacan
6.Ne znam odgovor


P8. Dat je program, inkrementalnog davaca sa pracenjem smjera kretanja
y = PINB&(32+8);
staro=novo;
novo= 32 & y;
if (novo!=staro){
switch(staro){
   //Analiza pomjeraja
   …
}
}
Da bi program ispravno funkcionisao potrebno je, izmedju ostalog, umjesto:

1.novo= 32 & y; staviti novo= y &8;
2.if (novo!=staro); staviti if (novo==staro)
3.novo= 32 & y; staviti novo= y &32;
4.novo= 32 & y; staviti novo=y;
5.Ni jedan ponudjeni odgovor nije tacan
6.Ne znam odgovor


P9. Oznacite netacnu stavku. Refleksioni opticki senzor se sastoji od:

1.kanala direktne vidljivosti izmedju izvora svijetla i prijemnika
2."Macjeg oka"
3.svjetlece LED ili nekog drugog izvora svijetla
4.Fotoprijemnika
5.Ni jedan ponudjeni odgovor nije tacan
6.Ne znam odgovor


Zavrsio sam sa radom.