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:examples:timer:periodic_interrupt [2015/02/26 12:28] raivo.sellet: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 <homelab/pin.h> #include <homelab/pin.h>
 #include <homelab/delay.h> #include <homelab/delay.h>
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 seadistamine
  // F_CPU/1024/[aeg] - 1 = periood  // F_CPU/1024/[aeg] - 1 = periood
  // 32000000 / 1024 / 1 - 1 = 31249  // 32000000 / 1024 / 1 - 1 = 31249
  TC_SetPeriod(&TCE1, 31249);  TC_SetPeriod(&TCE1, 31249);
  
- // Seame taimer E1i taktsageduse (F_CPU/1024)+ // Taimer E1 taktsageduse seadistamine (F_CPU/1024)
  TC1_ConfigClockSource(&TCE1, TC_CLKSEL_DIV1024_gc);  TC1_ConfigClockSource(&TCE1, TC_CLKSEL_DIV1024_gc);
- // Seame taimer E1i töötama normaalrežiimis+ // Taimer E1 seadistamine töötama normaalrežiimis
  TC1_ConfigWGM(&TCE1, TC_WGMODE_NORMAL_gc);  TC1_ConfigWGM(&TCE1, TC_WGMODE_NORMAL_gc);
  
- // Lubame ületäituvuse katkestuse kõrge prioriteediga+ // Kõrge prioriteediga ületäituvuse katkestuse lubamine
  TC1_SetOverflowIntLevel(&TCE1,TC_OVFINTLVL_HI_gc);  TC1_SetOverflowIntLevel(&TCE1,TC_OVFINTLVL_HI_gc);
  
- // 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) { }
 } }
 </code> </code>
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 <homelab/pin.h> #include <homelab/pin.h>
 #include <homelab/delay.h> #include <homelab/delay.h>
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 1s+ // teeb perioodi pikkuseks 1 s
  // 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) { }
 } }
 </code> </code>
  
 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.
et/examples/timer/periodic_interrupt.1424953725.txt.gz · Last modified: 2020/07/20 09:00 (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