This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:examples:digi:timer [2009/03/05 12:41] – raivo.sell | en:examples:digi:timer [2010/02/04 12:28] (current) – removed mikk.leini | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Timer ====== | ||
| - | |||
| - | Blinking LED | ||
| - | |||
| - | |||
| - | <code c> | ||
| - | /* Labor 2 näide | ||
| - | Harjutus töötab laborikaardiga Basic v3 | ||
| - | |||
| - | LED-i vilgutamine kasutades taimerit | ||
| - | Raivo Sell 2008 | ||
| - | |||
| - | LED = 0 (põleb) | ||
| - | PORDI suuna konfigureerimine: | ||
| - | |||
| - | #include < | ||
| - | #include < | ||
| - | #include < | ||
| - | |||
| - | static int i; //globaalne muutuja | ||
| - | int SAGEDUS = 10; // | ||
| - | |||
| - | |||
| - | // | ||
| - | #define INV(x) ^=(1<< | ||
| - | // | ||
| - | #define LED 4 | ||
| - | // Katkestus - funkitsioon käivitub sii, kui taimeri buffer saab täis | ||
| - | |||
| - | ISR (TIMER1_OVF_vect){ | ||
| - | i++; // i suurendamine 1 võrra iga funktsiooni käivituse korral | ||
| - | if (i> | ||
| - | PORTC INV(LED); // | ||
| - | i=0; //kordaja nullitakse | ||
| - | } | ||
| - | } | ||
| - | |||
| - | int main (void) { | ||
| - | // Taimeri juhtregistrid | ||
| - | TCCR1A = 0x00; // Taimer normaal reziimis | ||
| - | TCCR1B = _BV(CS10); //clk/1 (No prescaling) | ||
| - | | ||
| - | DDRC = 0x38; // DDRC 0bXX111000 | ||
| - | PORTC = 0x3F; // PORTC 0bXX111111 | ||
| - | |||
| - | TIMSK = _BV (TOIE1); // Lubatakse ületäitumise katkestus | ||
| - | sei (); // Lubatakse globaalkatkestus | ||
| - | |||
| - | while(1); //Lõputu tsükkel | ||
| - | // Mingeid tegevusi programm ei täida. LED-i vilgutatakse läbi katkestuse | ||
| - | } | ||
| - | </ | ||