This is an old revision of the document!
Harjutusülesanded
Ülesanded
Eesmärgiks on koostada programm, mis täidab kirjeldatud ülesannet.
Soojendusülesanne
Algajale
LCD ekraanil kuvada aega 100 ms täpsusega mis kulub suvaliste nuppude allavajutamiste vahel. Aja mõõtmise teostus vabal valikul.
Vajutades nuppu S1 kõigi kolme LED-i vilkumine aeglustub 1 Hz võrra, vajutades nuppu S3 vilkumine sageneb 1 Hz võrra ja vajutades nuppu S2 määratakse vilkumise sageduseks 1 Hz. Kasutada viitefunktsioone või katkestusi. (Katkestused on keerukamad kuid viitefunktsioonidega tekib nuppude filtreerimisfunktsiooni tõttu lisaviide).
7-segmendilisel LED indikaatoril kuvada nupu S1 vajutamise sagedust hertsides. Sageduse näit tuleb piirata madalamalt nulli ja kõrgemalt üheksaga.
Näidata LCD ekraanil kellaaega kujul hh:mm:ss. Kasutada tuleb riistavaralist taimerit 1 koos katkestustega ja kellaaeg peab nuppudega seadistatav olema. Soovitatav on kasutada 3 nuppu, millest S1 suurendab roteeruvalt tunde, S2 minuteid ja S3 sekundeid.
Edasijõudnule
Teha stopper, mis LCD ekraanil kuvab tunde, minuteid, sekundeid ja millisekundeid. Nupp S1 alustab mõõtmist, S2 peatab mõõtmise ja S3 nullib aja. Kasutada tuleb taimeri katkestust.
2-sekundilise vahega süttib ja kustub sujuvalt järjest punane, kollane ja roheline LED. Sujuv valgustus saadakse LED-i mitmesaja hertsise sagedusega moduleerides (seda ülikiiresti süüdates ja kustutades) ja põlemise/kustumise aja proportsioone muutes, mismõttu silmale paistab, et LED-i heledus muutub (tegu on pulsilaiusmodulatsiooniga).
Tekitada C keelde programmilõik mis tekitab 14.7456
MHz taktsagedusel 10 μs ± 10 % viite. Viite toime tõestada teoreetiliselt - kompileeritud programmi .lss failis olevaid assembler keele instruktsioone kommenteerides.
Kordamisküsimused
Millised meetodid on viite tekitamiseks ?
Kuidas tekitada tarkvaraline viide? Millistest parameetritest tarkvaralise viite kestus sõltub?
Miks on riistvaraline viide parem kui tarkvaraline ja vastupidi?