This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
et:examples:timer:delay [2014/10/07 10:21] – raivo.sell | et:examples:timer:delay [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ~~PB~~ | ||
====== Viide ====== | ====== Viide ====== | ||
- | //Vajalikud teadmised: [HW] [[et: | + | //Vajalikud teadmised: |
+ | [HW] [[et: | ||
+ | [AVR] [[et: | ||
+ | [LIB] [[et: | ||
===== Teooria ===== | ===== Teooria ===== | ||
Line 61: | Line 63: | ||
while (count-- > 0) | while (count-- > 0) | ||
{ | { | ||
- | // 1ms viide spetsiaalse funktsiooniga | + | // 1 ms viide spetsiaalse funktsiooniga |
_delay_ms(1); | _delay_ms(1); | ||
} | } | ||
Line 70: | Line 72: | ||
<code c> | <code c> | ||
- | // Kodulabori tarkvaralise viite demonstratsioonprogramm. | + | // Kodulabori tarkvaralise viite näidisprogramm |
- | // Programm vilgutab ~1 sekundi järel hetkeks LED-i. | + | // Programm vilgutab ~1 sekundi järel hetkeks LED-i |
#include < | #include < | ||
#include < | #include < | ||
Line 78: | Line 80: | ||
int main(void) | int main(void) | ||
{ | { | ||
+ | // LED-i viigu väljundiks seadmine | ||
+ | pin_setup_output(led_debug); | ||
// Lõputu tsükkel | // Lõputu tsükkel | ||
- | while (true) | + | while (1) |
{ | { | ||
// LED-i süütamine | // LED-i süütamine | ||
Line 88: | Line 92: | ||
sw_delay_ms(100); | sw_delay_ms(100); | ||
- | // LED kustutamine | + | // LED-i kustutamine |
pin_set(led_debug); | pin_set(led_debug); | ||
Line 100: | Line 104: | ||
- | Järgnev programmikood on taimeril põhinev ehk riistvaraline viitefunktsioon, | + | Järgnev programmikood on taimeril põhinev ehk riistvaraline viitefunktsioon, |
Tsüklis toimub loenduri algväärtustamine ja ületäitumise lipukese nullimine (sellesse 1 kirjutades). Seejärel oodatakse, kuni loendur loendab algväärtusest 256-ni, ehk ületäitumiseni. Ületäitumise hetkel läheb ületäitumise lipuke kõrgeks ja 1 ms viide ongi toimunud. Funktsiooni lõpus taimer peatatakse. | Tsüklis toimub loenduri algväärtustamine ja ületäitumise lipukese nullimine (sellesse 1 kirjutades). Seejärel oodatakse, kuni loendur loendab algväärtusest 256-ni, ehk ületäitumiseni. Ületäitumise hetkel läheb ületäitumise lipuke kõrgeks ja 1 ms viide ongi toimunud. Funktsiooni lõpus taimer peatatakse. | ||
<code c> | <code c> | ||
- | // Riistvaraline viide millisekundites | + | // Riistvaraline viide millisekundites |
void hw_delay_ms(unsigned short count) | void hw_delay_ms(unsigned short count) | ||
{ | { | ||
Line 138: | Line 142: | ||
</ | </ | ||
- | Esitatud viite funktsioon kasutab aga taimerite teeki, mille lähtekood | + | Esitatud viite funktsioon kasutab aga taimerite teeki, mille lähtekood |
<code c> | <code c> | ||
Line 196: | Line 200: | ||
int main(void) | int main(void) | ||
{ | { | ||
+ | // LED-i viigu väljundiks seadmine | ||
+ | pin_setup_output(led_debug); | ||
// Lõputu tsükkel | // Lõputu tsükkel | ||
- | while (true) | + | while (1) |
{ | { | ||
// LED-i süütamine | // LED-i süütamine |