Both sides previous revisionPrevious revisionNext revision | Previous revision |
en:exercises:timer [2010/03/04 17:31] – priitj | en:exercises:timer [2020/07/20 09:00] (current) – external edit 127.0.0.1 |
---|
====== Exercises ====== | ====== Exercises ====== |
| |
Eesmärgiks on koostada programm, mis täidab kirjeldatud ülesannet. | The goal is to write a program performing tasks described below. |
| |
===== Soojendusülesanne ===== | ===== Warm up exercise ===== |
| |
* Panna punane LED vilkuma 10-sekundilise perioodiga (poolperiood 5 s). Teostamiseks luua tarkvaralise viite funktsioon, mille parameetriks on sekundite arv. | * Make the red LED blink. The period is 10 seconds (half period is 5 seconds). Create function of software delay, with amount of seconds as a parameter. |
| |
===== Algajale ===== | ===== For beginners ===== |
| |
- LCD ekraanil kuvada aega 100 ms täpsusega, mis kulub suvaliste nuppude allavajutamiste vahel. Aja mõõtmise teostus vabal valikul. | - Display on LCD screen, with the accuracy of 100 ms, time between pressing of any random two buttons. Execution of the time measurement is your own choice |
- Vajutades nuppu S1,aeglustub kõigi kolme LED 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.) | - Pressing button S1, the blinking speed of all three LEDs is slowed down two times. Pressing button S3, the blinking gets 2 times faster and pressing button S2 the frequency of the blinking will be set to 1 Hz. Use delay functions or interruptions (the interruptions are more difficult but when delay functions are used there will be an extra delay due to the filtering function of the buttons). |
- 7-segmendilisel LED indikaatoril kuvada nupu S1 vajutamise sagedust hertsides. Sageduse näit tuleb piirata madalamalt nulli ja kõrgemalt üheksaga. | - Display the frequency of pressing down the button S1 on the 7 segment LED indicator in Hz-s. The display of the frequency must be limited with 0 at the bottom and with 9 at the top. |
- Nupule S1 vajutades loendab programm sekundeid 60-st nulli ja süütab seejärel punase LED-i. Nupule S2 vajutades on ajaks on 30 sekundit, misjärel süüdatakse kollane LED. Nupp S3 aeg on 10 sekundit ja LED on roheline. Kõik protsessid peavad toimima paralleelselt. LED-id kustuvad, kui vajutada vastavaid nuppe. | - If button S1 is pressed, the program counts down the seconds from 60 to 0 and then lights the red LED. If button S2 is pressed the time is 30 seconds, followed by lighting of the yellow LED. For S3 the time is 10 seconds and the LED is green. All the processes have to take place simultaneously. The LEDs switch off when corresponding buttons are pressed. |
- Näidata LCD ekraanil kellaaega kujul hh:mm:ss. Kasutada tuleb raudvaralist 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. | - Display the Time on the LCD as follows: hh:mm:ss. Use hardware timer 1 with interruptions and the Time must be configurable with the buttons. It is advised to use three buttons, S1 for increasing rotationally the hours, S2 for minutes and S3 for seconds. |
| |
===== Edasijõudnule ===== | ===== For advanced ===== |
| |
- 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. | - Design a stopwatch, which displays hours, minutes, seconds and milliseconds on LCD screen. Button S1 starts the time, S2 stops it and S3 zeros it. Interruption of the timer must be used. |
- 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). | - In 2 second intervals red, yellow and green LED are smoothly lit and switched off after each other. The smooth lighting is achieved by modulating the LEDs with hundredths of hertz (by lighting and switching it off very fast) and by changing the proportions between lighted/switched off time, causing to appear for the eye, that the brightness of the LEDs is changing (this is Pulse With Modulation). |
- 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 assemblerkeele instruktsioone kommenteerides. | - Make a part of program in C-language which produces a delay of 10 μs ± 10 % at frequency of 14,7456 MHz. Verify the functioning of the delay theoretically - compiled program. By commenting the instructions in assembler language in the .lss file of compiled program. |
| |
===== Kordamisküsimused ===== | ===== Questions ===== |
| |
- Millised meetodid on viite tekitamiseks? | - What are the methods for crating delay? |
- Kuidas tekitada tarkvaraline viide? Millistest parameetritest tarkvaralise viite kestus sõltub? | - How is software delay created? On which parameters depends the duration of the software delay? |
- Mis sunnib kasutama raudvaralist taimerit koos katkestusega? | - What makes us use hardware delay/timer with interruptions? |
- Arvutage 8-bitise taimeri ületäitumise katkestuse periood, kui taktsagedus on 16 MHz ja sagedusjaguri tegur 1024. | - Calculate the overflow interruption period for 8-bit timer, if the clock rate is 16 MHz and frequency divider's factor is 1024. |
- Mis asi on arvutites peituv "RTC"? | - What is RTC hidden in the computers? |
- Mis juhtub 19. jaanuaril 2038 arvutite maailmas? | - What happens on the 19.01.2038 in the world of computers? |
- Mida saab AVR taimeritega veel teha peale aja loendamise? | - What can be done with the AVR timers besides counting time? |
- Milliste registritega saab seadistada ATmega128 taimer 0. Mida on nende registritega võimalik seadistada? | - What indexes can be used to set up the ATmega128 timer 0? What can be adjusted with these registers? |
- Milline on suurim katkestuste ajaline täpsus millisekundites, mida on võimalik saavutada ATmega128 mikrokontrolleriga, mis töötab 14.7456 MHz taktsagedusel? Näidake arvutusvalem. | - Which is the longest duration of the interruptions in milliseconds which can be achieved with ATmega128 micro-controller that work at the clock frequency of 14,7456 MHz? Show the calculation formula. |
- 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. | - In case the processor is heavily loaded with an execution of a program (for example, it controls several motors and the values of several sensors at once), does this have an effect on the accuracy of the timer? Explain your answer. |