This is an old revision of the document!


Harjutusülesanded

Ülesanded

Eesmärgiks on koostada programm, mis täidab kirjeldatud ülesannet.

Soojendusülesanne

  • Panna punane LED vilkuma 10-sekundilise perioodiga (poolperiood 5 s). Teostamiseks luua tarkvaralise viite funktsioon mille parameetriks on sekundite arv.

Algajale

  1. Vajutades nuppu S1 kõigi kolme LED-i vilkumine aeglustub, vajutades nuppu S3 vilkumine kiireneb ja vajutades nuppu S2 määratakse vilkumise sageduseks 1 Hz. Kasutada viitefunktsioone või katkestusi (katkestused keerukamad).
  2. LCD ekraanil kuvada aega millisekundites mis kulub nupu S1 ja nupu S2 vajutamise vahel. Aja mõõtmise teostus vabal valikul.
  3. 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 kellaaega tunni, S2 minuti ja S3 sekundi võrra.

Edasijõudnule

  1. 2-sekundilise vahega süüdata ja kustutada 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 (see on pulsilaiusmodulatsioon, ehk PWM).
  2. 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

  1. Millised meetodid on viite tekitamiseks ?
  2. Kuidas tekitada tarkvaraline viide? Millistest parameetritest tarkvaralise viite kestus sõltub?
  3. Miks on riistvaraline viide parem kui tarkvaraline ja vastupidi?
et/exercises/timer.1263380764.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0