This is an old revision of the document!


 

Harjutusülesanded

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

Soojendusülesanne

  • Süütab nupu S1 vajutamisel ühe LED-i, S2 vajutamisel kaks LED-i, S3 vajutamisel kolm LED-i.

Algajale

  1. Imiteerib ülekäiguraja autode valgusfoori tööd. Kuni pole vajutatud ühelegi nupule, põleb autodele roheline LED. Pärast suvalisele nupule vajutamist hakkab roheline kolmeks sekundiks vilkuma, seejärel süttib kolmeks sekundiks kollane ning kümneks sekundiks punane ja lõpuks jääb uuesti pidevalt põlema roheline LED, kuni toimub uus nupule vajutus.
  2. Loendab nupuvajutusi. Tulemus kuvatakse LED-i vilkumistega. Pärast igat nupule vajutamist suureneb vilgutamiste arv ühe võrra. Valida võib suvalise nupu. LED-i vilgutamiseks kasutada alamfunktsiooni, mille parameetriks on vilkumiste arv.
  3. Suvalises järjekorras esitada 7-segmendilisel indikaatoril kuueteistkümnendsüsteemi arve sagedusega 1 Hz.
  4. 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. Ülesanne tuleb lahendada katkestuste abil (mitte tarkvaralise viitega).
  5. Koostada kolm lihtsat muusikalugu, mis mängitakse ette nupule vajutamise järel. Edasijõudnud võivad teha nii, et lugu saab vahetada (nupule vajutusel) ka poole loo pealt.

Edasijõudnule

  1. Vajutades nuppe järjekorras S3 – S2 - S1, süttib roheline LED. Kõigi teiste kombinatsioonide korral süttib punane LED. Iga nupuvajutuse korral vilgatab kollane LED, mis kinnitab nupule vajutust.
  2. Igale LED-ile vastab üks nupp. Kontroller vilgutab LED-e suvaliselt ja kasutaja peab nuppe vajutades sama jada kordama. Vilkumiste jada läheb iga korraga järjest pikemaks, lisades eelnevale jadale uue suvalise LED-i. Pärast iga kasutaja sisestuskorda kontrollitakse, kas sisestus oli õige. Sisestuste vahe on kaks sekundit. Vale sisestuse korral vilgutatakse kõiki tulesid korraga kolm korda. (Mängija õigete sisestuste arvu võib kuvada LCD ekraanil.)
  3. 7-segmendilisel indikaatoril panna 500 ms perioodiga ringiratast kordamööda põlema välised 6 segmenti.
  4. Graafilisel LCD-l näidata sümbolit “X”, mida saab nuppudega liigutada. S1 nupp liigutab vasakule, S3 paremale ja nupp S2 vahetab rida.
  5. Teha lihtne ussimäng graafilisel LCD ekraanil. Ussi laius on 1 piksel, pikkus 5 pikslit. Ussi saab nuppudega vasakule või paremale pöörama panna. Uss peab suutma vältida kokkupõrget ekraani servaga (enne seda ära keerama). Boonuspunktid munade korjamise võimaluse ja järjest pikeneva ussi eest. Ülesande lihtsam lahendus on uss teha “O” tähtedest.

 

Kordamisküsimused

  1. Mis on tehete “=” ja “==” erinevus? Esitage selle erinevuse tõestuseks kaks näidet.
  2. Mis on tehete “|” ja “||” erinevus? Esitage selle erinevuse tõestuseks kaks näidet.
  3. Kirjutage avaldis, milles kasutate võrrandit “x = x + 1” kaksteist korda.
  4. Kuidas kirjutate C-keeles lõputu tsükli? Esitage kaks erinevat varianti.
  5. Millist tüüpi muutuja valite C-keeles, et esitada positiivseid arve vahemikus 7 kuni 154?
  6. Milline register määrab ära pordi suuna? Tooge pordi näide sisendi ja väljundi seadistamise kohta.
  7. Milliste meetoditega saab elimineerida lüliti kontaktide põrkumisest tekkivaid väärlülitusi? Tooge näiteid riistvaralise ja tarkvaralise lahenduse kohta.
  8. Mida tähendab termin bitinihutus? Tooge praktiline näide koos seletusega.
  9. Miks kasutatakse lülitite juures pull-up takistit? Mille järgi määratakse selle takistus?
  10. Arvutage LED voolu piirava takisti väärtus, kui toitepinge on 5 V, LED päripinge 2,7 V ja vool 30 mA.
  11. Mitu viiku kasutab 7-segmendiline numbernäidik (koos punktisegmendiga), kui see on ühendatud mikrokontrolleriga otse? Mitu viiku on vaja, kui numbernäidikut juhitakse läbi nihkeregistri 74HC595?
  12. Mis määrab 7-segmendilise numbernäidiku heleduse? Kuidas seda reguleerida, kui numbernäidikut juhitakse otse ja läbi nihkeregistri 74HC595?
  13. Kui 7-segmendiline numbernäidik on kontrolleriga otse ühendatud porti A nii, et segment A on viik PA0, B on PA1 … ja DP on PA7, siis millised on PORTA registri väärtused numbrite 0..9 korral?
  14. Millise viigu kaudu reguleeritakse LCD taustavalgust ja kuidas?
  15. Kuidas teisendada kümnendsüsteemi arvu kahendsüsteemi arvuks (tekstikujule) ja vastupidi?
  16. Mille poolest erineb monokromaatiline (must-valge) ja värviline LCD ekraan?
  17. Millised meetodid on viite tekitamiseks?
  18. Kuidas tekitada tarkvaraline viide? Millistest parameetritest tarkvaralise viite kestus sõltub?
  19. Mis sunnib kasutama riistvaralist taimerit koos katkestusega?
  20. Arvutage 8-bitise taimeri ületäitumise katkestuse periood, kui taktsagedus on 16 MHz ja sagedusjaguri tegur 1024.
  21. Mis asi on arvutites peituv “RTC”?
  22. Mis juhtub 19. jaanuaril 2038 arvutite maailmas?
  23. Mida saab AVR taimeritega veel teha peale aja loendamise?
  24. Milline on suurim katkestuste ajaline täpsus millisekundites, mida on võimalik saavutada ATmega128A1U mikrokontrolleriga, mis töötab 32 MHz taktsagedusel? Näidake arvutusvalem.
  25. 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.
et/exercises/ui.1412774908.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