aboutsummaryrefslogtreecommitdiff
path: root/c/timer/timerctc.c
blob: 7e65b520756840d4b0516e620357f8785b614a91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <avr/io.h>

enum{
	Dcnt	= 62499	/* 1Hz */
};

int
main()
{
	int led;

	led = 1<<PB1;
	DDRB |= led;
	TCCR1B |= 1<<CS12;	/* f/256 prescaling */
	TCCR1B |= 1<<WGM12;	/* ctc op mode */
	OCR1A = Dcnt;		/* setup TOP */

	for(;;){
		/* check if we reached TOP */
		if(TIFR1 & (1<<OCF1A)){
			PORTB ^= led;
			TIFR1 = 1<<OCF1A;	/* reset the flag */
		}
	}
}