This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
et:examples:timer:periodic_interrupt [2015/02/26 12:28] – raivo.sell | et:examples:timer:periodic_interrupt [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 25: | Line 25: | ||
<code c> | <code c> | ||
- | // Kodulabor III loenduri katkestusega vilkuva LED-i näide. | + | // Kodulabor III loenduri katkestusega vilkuva LED-i näide |
#include < | #include < | ||
#include < | #include < | ||
Line 34: | Line 34: | ||
ISR(TCE1_OVF_vect) | ISR(TCE1_OVF_vect) | ||
{ | { | ||
- | // Rohelise LED oleku muutmine | + | // Rohelise LED-i oleku muutmine |
pin_toggle(led_green); | pin_toggle(led_green); | ||
} | } | ||
Line 44: | Line 44: | ||
pin_setup_output(led_green); | pin_setup_output(led_green); | ||
- | // Seame taimer E1i perioodi | + | // Taimer E1 perioodi |
// F_CPU/ | // F_CPU/ | ||
// 32000000 / 1024 / 1 - 1 = 31249 | // 32000000 / 1024 / 1 - 1 = 31249 | ||
TC_SetPeriod(& | TC_SetPeriod(& | ||
- | // Seame taimer E1i taktsageduse (F_CPU/ | + | // Taimer E1 taktsageduse |
TC1_ConfigClockSource(& | TC1_ConfigClockSource(& | ||
- | // Seame taimer E1i töötama normaalrežiimis | + | // Taimer E1 seadistamine |
TC1_ConfigWGM(& | TC1_ConfigWGM(& | ||
- | // Lubame | + | // Kõrge prioriteediga |
TC1_SetOverflowIntLevel(& | TC1_SetOverflowIntLevel(& | ||
- | // Lubame kõrge prioriteedika katkestused | + | // Kõrge prioriteediga katkestuste lubamine |
- | // Lubame globaalselt katkestused | + | |
PMIC.CTRL |= PMIC_HILVLEN_bm; | PMIC.CTRL |= PMIC_HILVLEN_bm; | ||
+ | // Globaalne katkestuste lubamine | ||
sei(); | sei(); | ||
// Lõputu tsükkel | // Lõputu tsükkel | ||
- | while (true) { } | + | while (1) { } |
} | } | ||
</ | </ | ||
Line 74: | Line 74: | ||
<code c> | <code c> | ||
- | // Kodulabor II loenduri katkestusega vilkuva LED-i näide. | + | // Kodulabor II loenduri katkestusega vilkuva LED-i näide |
#include < | #include < | ||
#include < | #include < | ||
Line 83: | Line 83: | ||
ISR(TIMER1_CAPT_vect) | ISR(TIMER1_CAPT_vect) | ||
{ | { | ||
- | // Rohelise LED oleku muutmine | + | // Rohelise LED-i oleku muutmine |
pin_toggle(led_green); | pin_toggle(led_green); | ||
} | } | ||
Line 99: | Line 99: | ||
// Taimeri maksimaalne väärtus 14400, mis | // Taimeri maksimaalne väärtus 14400, mis | ||
- | // teeb perioodi pikkuseks | + | // teeb perioodi pikkuseks |
// Valem: 14,7456Mhz / 1024 = 14400 | // Valem: 14,7456Mhz / 1024 = 14400 | ||
timer1_set_input_capture_value(14400); | timer1_set_input_capture_value(14400); | ||
Line 110: | Line 110: | ||
// Lõputu tsükkel | // Lõputu tsükkel | ||
- | while (true) { } | + | while (1) { } |
} | } | ||
</ | </ | ||
Programmi käivitades on näha, et hoolimata sellest, et põhitsüklis mingeid tegevusi ei ole, toimuvad katkestused ja roheline LED vilgub. | Programmi käivitades on näha, et hoolimata sellest, et põhitsüklis mingeid tegevusi ei ole, toimuvad katkestused ja roheline LED vilgub. |