| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| et:exercises:timer [2010/01/13 11:06] – mikk.leini | et:exercises:timer [2020/07/20 09:00] (current) – external edit 127.0.0.1 |
|---|
| | <pagebreak> |
| ====== Harjutusülesanded ====== | ====== Harjutusülesanded ====== |
| |
| ===== Soojendusülesanne ===== | ===== Soojendusülesanne ===== |
| |
| * Panna punane LED vilkuma 10-sekundilise perioodiga (poolperiood 5 s). Teostamiseks luua tarkvaralise viite funktsioon mille parameetriks on sekundite arv. | * Panna punane LED vilkuma 10-sekundilise perioodiga (poolperiood 5 s). Teostamiseks luua tarkvaralise viite funktsioon, mille parameetriks on sekundite arv. |
| |
| ===== Algajale ===== | ===== Algajale ===== |
| |
| - 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). | - LCD ekraanil kuvada aega 100 ms täpsusega, mis kulub suvalise kahe nupu allavajutamiste vahel. Aja mõõtmise teostuse võib vabalt valida. |
| - LCD ekraanil kuvada aega millisekundites mis kulub nupu S1 ja nupu S2 vajutamise vahel. Aja mõõtmise teostus vabal valikul. | - Vajutades nuppu S1, aeglustub kõigi kolme LED-i vilkumine 2 korda, vajutades nuppu S3, sageneb vilkumine 2 korda, 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.) |
| - 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. | - 7-segmendilisel LED indikaatoril kuvada nupu S1 vajutamise sagedus hertsides. Sageduse näit tuleb piirata madalamalt nulli ja kõrgemalt üheksaga. |
| | - Nupule S1 vajutades loendab programm sekundeid 60-st nullini ja süütab seejärel punase LED-i. Nupule S2 vajutades on ajaks 30 sekundit, misjärel süüdatakse kollane LED. Nupp S3 aeg on 10 sekundit ja süüdatav LED on roheline. Kõik protsessid peavad toimima paralleelselt. LED-id kustuvad, kui vajutada vastavaid nuppe. |
| | - Näidata LCD ekraanil kellaaega kujul "hh:mm:ss". Kasutada tuleb riistvaralist taimerit 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 ===== | ===== Edasijõudnule ===== |
| |
| - 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). | - 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. |
| - 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. | - 2-sekundilise vahega süttib ja kustub sujuvalt järjest punane, kollane ja roheline LED. Sujuv valgustus saadakse LED-i mitmesajahertsise sagedusega moduleerides (seda ülikiiresti süüdates ja kustutades) ja põlemise/kustumise aja proportsioone muutes, mistõttu silmale paistab, et LED-i heledus muutub (tegu on pulsilaiusmodulatsiooniga). |
| |
| ===== Kordamisküsimused ===== | ===== Kordamisküsimused ===== |
| |
| - Millised meetodid on viite tekitamiseks ? | - Millised meetodid on viite tekitamiseks? |
| - Kuidas tekitada tarkvaraline viide? Millistest parameetritest tarkvaralise viite kestus sõltub? | - Kuidas tekitada tarkvaraline viide? Millistest parameetritest tarkvaralise viite kestus sõltub? |
| - Miks on riistvaraline viide parem kui tarkvaraline ja vastupidi? | - Mis sunnib kasutama riistvaralist taimerit koos katkestusega? |
| | - Arvutage 8-bitise taimeri ületäitumise katkestuse periood, kui taktsagedus on 16 MHz ja sagedusjaguri tegur 1024. |
| | - Mis asi on arvutites peituv "RTC"? |
| | - Mis juhtub 19. jaanuaril 2038 arvutite maailmas? |
| | - Mida saab AVR taimeritega veel teha peale aja loendamise? |
| | - Milline on suurim katkestuste ajaline täpsus millisekundites, mida on võimalik saavutada ATmega128A1U mikrokontrolleriga, mis töötab 32MHz taktsagedusel? Näidake arvutusvalem. |
| | - Kui protsessor on tugevalt koormatud programmi täitmisega (näiteks juhib mitut mootorit ja kontrollib pidevalt paljude andurite väärtusi), siis kas see mõjutab taimeri aja mõõtmise täpsust? Selgitage oma vastust. |