Iseseisev töö 3

Käivitada antud programm AVR Studios ja jälgida programmi täitmist.

Iseseisvalt suurendada samamoodi viidet kasvatades viite pikkus ühe sekundini.

Laadida internetist alla viite generaator ja genereerida ühe sekundi pikkune viide ning võrrelda seda Näite 3 põhjal valmistatud ühe sekundi pikkuse viitega. Millised on olulised erinevused?

Üks võimalikest generaatoritest:

Selline tarkvaras realiseeritud viide ei ole päris täpne, sest kui Viide1ms kutsub kaks korda välja viidet 500us, täidetakse lisaks vajalikele lahutamistsüklitele, iga väljakutsumise ajal, rida muid vajalikke käske nagu push, pop, call, ret. Need võtavad kõik natukene aega ja kutsudes välja viidet 500us kaks korda saadakse tegelikult natukene pikem viide kui 1ms. Sellist viidet saab teha ka täpseks, aga siis ei näe programmi kood nii ilus välja, sest siis on vaja tsüklite pikkused täpselt välja arvutada ning kui mõni mikrosekund jääb näiteks sajast mikrosekundist puudu, siis saab need tekitada näiteks nop käsuga enne ret käsku. Samas kui tegu pole väga ajakriitilise protsessiga või näiteks stopperiga, siis on see täpsus tihtipeale vastuvõetav. Ajakriitiliste protsesside jaoks tarkvaraline viide ei sobi.