-> mapping to an 1/x like behaviour
[my-code/atmel.git] / monolyzer / timer.asm
index 861e9b9..f5297fe 100644 (file)
@@ -1,25 +1,74 @@
 ; timer functions
 
-TIMER0_INIT:
+TIMER1_INIT_NP:
 
-       ; clock select, no prescaling
-       ldi tmp1,0x01
-       out TCCR0B,tmp1
+       ; clock select, no prescaler
+       in tmp1,TCCR1B
+       cbr tmp1,(1<<CS12)
+       cbr tmp1,(1<<CS11)
+       sbr tmp1,(1<<CS10)
+       out TCCR1B,tmp1
 
        ret
 
-TIMER0_INT_INIT:
+TIMER1_INIT_8:
 
-       ; overflow interrupt
-       ldi tmp1,0x02
+       ; clock select, prescaler 64
+       in tmp1,TCCR1B
+       cbr tmp1,(1<<CS12)
+       sbr tmp1,(1<<CS11)
+       cbr tmp1,(1<<CS10)
+       out TCCR1B,tmp1
+
+       ret
+
+TIMER1_INIT_64:
+
+       ; clock select, prescaler 64
+       in tmp1,TCCR1B
+       cbr tmp1,(1<<CS12)
+       sbr tmp1,(1<<CS11)
+       sbr tmp1,(1<<CS10)
+       out TCCR1B,tmp1
+
+       ret
+
+TIMER1_INIT_256:
+
+       ; clock select, prescaler 256
+       in tmp1,TCCR1B
+       sbr tmp1,(1<<CS12)
+       cbr tmp1,(1<<CS11)
+       cbr tmp1,(1<<CS10)
+       out TCCR1B,tmp1
+
+       ret
+
+TIMER1_INIT_1024:
+
+       ; clock select, prescaler 1024
+       in tmp1,TCCR1B
+       sbr tmp1,(1<<CS12)
+       cbr tmp1,(1<<CS11)
+       sbr tmp1,(1<<CS10)
+       out TCCR1B,tmp1
+
+       ret
+
+TIMER1_INT_ENABLE:
+
+       ; overflow interrupt enable
+       in tmp1,TIMSK
+       sbr tmp1,(1<<TOIE1)
        out TIMSK,tmp1
 
        ret
 
-TIMER0_INT_END:
+TIMER1_INT_DISABLE:
 
-       ; overflow interrupt
-       ldi tmp1,0x00
+       ; overflow interrupt disable
+       in tmp1,TIMSK
+       cbr tmp1,(1<<TOIE1)
        out TIMSK,tmp1
 
        ret