This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:software:homelab:library:timer_xmega [2014/01/29 16:32] – rellermaa | et:software:homelab:library:timer_xmega [2020/07/20 12:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Taimerid ====== | + | ====== Taimerid |
| Käesolev taimerite teek katab suure osa ATXmega128A1U taimerite funktsionaalsusest. Kuna AVR taimerid on erinevate kiipide vahel päris erinevad, siis ei saa nende kasutamiseks kirjutada universaalseid funktsioone. Ka kirjeldatavad ATXmega128A1U funktsioonid on suures osas lihtsalt primitiivsed registri muutmise või lugemise funktsioonid, | Käesolev taimerite teek katab suure osa ATXmega128A1U taimerite funktsionaalsusest. Kuna AVR taimerid on erinevate kiipide vahel päris erinevad, siis ei saa nende kasutamiseks kirjutada universaalseid funktsioone. Ka kirjeldatavad ATXmega128A1U funktsioonid on suures osas lihtsalt primitiivsed registri muutmise või lugemise funktsioonid, | ||
| Line 17: | Line 17: | ||
| * **//Timer wgm//** \\ Taimer 0/1 režiim. Väärtuste variandid ja tähendused: | * **//Timer wgm//** \\ Taimer 0/1 režiim. Väärtuste variandid ja tähendused: | ||
| * // | * // | ||
| - | * // | + | |
| - | * // | + | * // |
| - | * // | + | * // |
| - | * // | + | * // |
| - | * // | + | * // |
| ~~CL~~ | ~~CL~~ | ||
| * **//Timer katkestuste nimed ja prioriteedid.// | * **//Timer katkestuste nimed ja prioriteedid.// | ||
| Line 126: | Line 126: | ||
| int main(void) | int main(void) | ||
| { | { | ||
| - | Homelab_clock_init(); | ||
| - | |||
| // Seadista roheline LED väljundiks | // Seadista roheline LED väljundiks | ||
| pin_setup_output(led_green); | pin_setup_output(led_green); | ||
| led_off(led_green); | led_off(led_green); | ||
| + | |||
| + | // Seame taimer E0i perioodi | ||
| + | // Seame taimer E0i töötsükli pikkuse | ||
| + | TC_SetPeriod(& | ||
| + | TC_SetCompareA(& | ||
| - | TC_SetPeriod(& | + | // Seame taimer E0i taktsageduse (F_CPU/ |
| - | TC_SetCompareA(& | + | TC0_ConfigClockSource(& |
| + | // Seame taimer E0i töötama normaalrežiimis | ||
| + | TC0_ConfigWGM(& | ||
| - | TC0_ConfigClockSource(& | + | // Lubame ületäituvuse katkestuse kõrge prioriteediga |
| - | TC0_ConfigWGM(& | + | // Lubame värdluskanali A katkestuse keskmise prioriteediga |
| - | + | TC0_SetOverflowIntLevel(& | |
| - | TC0_SetOverflowIntLevel(& | + | TC0_SetCCAIntLevel(& |
| - | TC0_SetCCAIntLevel(& | + | |
| - | + | // Lubame | |
| - | PMIC.CTRL |= PMIC_MEDLVLEN_bm|PMIC_HILVLEN_bm; | + | // Lubame globaalselt katkestused |
| - | sei(); | + | PMIC.CTRL |= PMIC_MEDLVLEN_bm|PMIC_HILVLEN_bm; |
| + | sei(); | ||
| //Tühi tsükkel, programm jookseb katkestuste peal | //Tühi tsükkel, programm jookseb katkestuste peal | ||