-> mapping to an 1/x like behaviour
[my-code/atmel.git] / monolyzer / timer.asm
1 ; timer functions
2
3 TIMER1_INIT_NP:
4
5         ; clock select, no prescaler
6         in tmp1,TCCR1B
7         cbr tmp1,(1<<CS12)
8         cbr tmp1,(1<<CS11)
9         sbr tmp1,(1<<CS10)
10         out TCCR1B,tmp1
11
12         ret
13
14 TIMER1_INIT_8:
15
16         ; clock select, prescaler 64
17         in tmp1,TCCR1B
18         cbr tmp1,(1<<CS12)
19         sbr tmp1,(1<<CS11)
20         cbr tmp1,(1<<CS10)
21         out TCCR1B,tmp1
22
23         ret
24
25 TIMER1_INIT_64:
26
27         ; clock select, prescaler 64
28         in tmp1,TCCR1B
29         cbr tmp1,(1<<CS12)
30         sbr tmp1,(1<<CS11)
31         sbr tmp1,(1<<CS10)
32         out TCCR1B,tmp1
33
34         ret
35
36 TIMER1_INIT_256:
37
38         ; clock select, prescaler 256
39         in tmp1,TCCR1B
40         sbr tmp1,(1<<CS12)
41         cbr tmp1,(1<<CS11)
42         cbr tmp1,(1<<CS10)
43         out TCCR1B,tmp1
44
45         ret
46
47 TIMER1_INIT_1024:
48
49         ; clock select, prescaler 1024
50         in tmp1,TCCR1B
51         sbr tmp1,(1<<CS12)
52         cbr tmp1,(1<<CS11)
53         sbr tmp1,(1<<CS10)
54         out TCCR1B,tmp1
55
56         ret
57
58 TIMER1_INT_ENABLE:
59
60         ; overflow interrupt enable
61         in tmp1,TIMSK
62         sbr tmp1,(1<<TOIE1)
63         out TIMSK,tmp1
64
65         ret
66
67 TIMER1_INT_DISABLE:
68
69         ; overflow interrupt disable
70         in tmp1,TIMSK
71         cbr tmp1,(1<<TOIE1)
72         out TIMSK,tmp1
73
74         ret
75