Difference between revisions of "AVR Timer Interrupts"
Raghavendra (Talk | contribs) (Created page with "Category:AVR Tutorials =Basics= {| style="text-align:center;" class="table table-responsive table-bordered" !colspan = '8'|TIMSK |+Timer/Counter Interrupt Mask Register...") |
Raghavendra (Talk | contribs) |
||
Line 11: | Line 11: | ||
|} | |} | ||
+ | |||
+ | ==Code== | ||
+ | <html> | ||
+ | <script src="https://gist.github.com/raghavendrahassy/7c56d76b6fd53f991875.js"></script> | ||
+ | </html> | ||
Revision as of 14:51, 22 March 2016
Basics
TIMSK | |||||||
---|---|---|---|---|---|---|---|
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
- | - | TICIE1 | OCIE1A | OCIE1B | TOIE1 | - | - |
Code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<avr/io.h> | |
#include<avr/interrupt.h> | |
#define LED PD4 | |
ISR (TIMER1_OVF_vect) // Timer1 ISR | |
{ | |
PORTD ^= (1 << LED); | |
TCNT1H=0xF9; // Reload the 16-bit count value | |
TCNT1L=0xE6; // in timer1 count registers | |
} | |
int main() | |
{ | |
DDRD = (0x01 << LED); //Configure the PORTD4 as output | |
TCNT1=63976; // for 1 sec at 16 MHz | |
TCCR1A = 0x00; | |
TCCR1B = (1<<CS10) | (1<<CS12);; // Timer mode with 1024 prescler | |
TIMSK = (1 << TOIE1) ; // Enable timer1 overflow interrupt(TOIE1) | |
sei(); // Enable global interrupts by setting global interrupt enable bit in SREG | |
while(1) | |
{ | |
} | |
} | |