Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
et:software:homelab:library:timer_xmega [2014/01/29 16:32] rellermaaet:software:homelab:library:timer_xmega [2020/07/20 12:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== Taimerid ======+====== Taimerid XMega ======
  
 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, kuid siiski on nad loetavamad kui registrid. 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, kuid siiski on nad loetavamad kui registrid.
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:
     * //TC_WGMODE_NORMAL_gc// - Normaal režiim     * //TC_WGMODE_NORMAL_gc// - Normaal režiim
- * //TC_WGMODE_FRQ_gc// - Sagedus generaator režiim +    * //TC_WGMODE_FRQ_gc// - Sagedus generaator režiim 
- * //TC_WGMODE_SINGLESLOPE_gc// - PWM režiim ainult üles loendusega +    * //TC_WGMODE_SINGLESLOPE_gc// - PWM režiim ainult üles loendusega 
- * //TC_WGMODE_DSTOP_gc//  - PWM režiim üles-alla loendusega, Registrite uuendus TOP väärtusel +    * //TC_WGMODE_DSTOP_gc//  - PWM režiim üles-alla loendusega, Registrite uuendus TOP väärtusel 
- * //TC_WGMODE_DSBOTH_gc//  - PWM režiim üles-alla loendusega, Registrite uuendus TOP ja BOTTOM väärtusel +    * //TC_WGMODE_DSBOTH_gc//  - PWM režiim üles-alla loendusega, Registrite uuendus TOP ja BOTTOM väärtusel 
- * //TC_WGMODE_DSBOTTOM_gc// - PWM režiim üles-alla loendusega, Registrite uuendus BOTTOM väärtusel+    * //TC_WGMODE_DSBOTTOM_gc// - PWM režiim üles-alla loendusega, Registrite uuendus BOTTOM väärtusel
 ~~CL~~  ~~CL~~
   * **//Timer katkestuste nimed ja prioriteedid.//** \\ Kõik katkestused XMega seeria mikrokontrolleritel on prioritiseeritud.   * **//Timer katkestuste nimed ja prioriteedid.//** \\ Kõik katkestused XMega seeria mikrokontrolleritel on prioritiseeritud.
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(&TCE0, 20000);
 + TC_SetCompareA(&TCE0, 15000);
  
- TC_SetPeriod(&TCE0, 20000); // Seame taimer E0i perioodi + // Seame taimer E0i taktsageduse (F_CPU/1024) 
- TC_SetCompareA(&TCE0, 15000); // Seame taimer E0i töötsükli pikkuse+ TC0_ConfigClockSource(&TCE0, TC_CLKSEL_DIV1024_gc);  
 + // Seame taimer E0i töötama normaalrežiimis 
 + TC0_ConfigWGM(&TCE0, TC_WGMODE_NORMAL_gc);
  
- TC0_ConfigClockSource(&TCE0, TC_CLKSEL_DIV1024_gc); // Seame taimer E0i taktsageduse (F_CPU/1024) + // Lubame ületäituvuse katkestuse kõrge prioriteediga 
- TC0_ConfigWGM(&TCE0, TC_WGMODE_NORMAL_gc); // Seame taimer E0i töötama normaalrežiimis + // Lubame värdluskanali A katkestuse keskmise prioriteediga 
- + TC0_SetOverflowIntLevel(&TCE0,TC_OVFINTLVL_HI_gc);  
- TC0_SetOverflowIntLevel(&TCE0,TC_OVFINTLVL_HI_gc); // Lubame ületäituvuse katkestuse kõrge prioriteediga + TC0_SetCCAIntLevel(&TCE0, TC_CCAINTLVL_MED_gc);  
- TC0_SetCCAIntLevel(&TCE0, TC_CCAINTLVL_MED_gc); // Lubame värdluskanali A katkestuse keskmise prioriteediga +  
- + // Lubame keskmised ja kõrge prioriteedika katkestused 
- PMIC.CTRL |= PMIC_MEDLVLEN_bm|PMIC_HILVLEN_bm; // Lubame keskmised ja kõrge prioriteedika katkestused + // Lubame globaalselt katkestused 
- sei(); // Lubame globaalselt katkestused+ 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
et/software/homelab/library/timer_xmega.1391005959.txt.gz · Last modified: (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0