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:33] 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 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.1391006011.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