94ba21c6ccf34330ea351fc4b7e798329e8d8213
[my-code/atmel.git] / beginners / season_junior.asm
1 ; season - junior
2 ;
3 ; author: hackbard@hackdaworld.dyndns.org
4 ;
5
6
7 ; at90s2313
8 ; setup:
9 ; vcc card --- vcc cam
10 ; rst card --- rst cam --- atmel t0 (pd4)
11 ; clk card --- clk cam --- atmel t1 (pd5)
12 ; gnd card --- gnd cam --- atmel gnd
13 ; i/o card --- atmel int0 (pd2)
14 ; i/o cam  --- atmel int1 (pd3)
15
16 include "../include/2313def.inc"
17
18
19 ;
20 ; interrupt vectors:
21 ;
22
23 ; reset
24 rjmp INIT
25
26 ; int0
27 rjmp REC_CARD
28
29 ; int1
30 rjmp REC_CAM
31
32 ; timer/counter capt 1
33 reti
34
35 ; timer/counter compare
36 reti
37
38 ; timer/counter overflow 1
39 rjmp T1_OVERFLOW
40
41 ; timer/counter overflow 0
42 reti
43
44 ; uart rx complete
45 reti
46
47 ; uart data register empty
48 reti
49
50 ; uart tx complete
51 reti
52
53 ; analog comparator
54 reti
55
56 ;
57 ; init routine
58 ;
59
60 INIT:
61
62 ; set stackpointer
63 ldi r16,low(RAMEND)
64 out SPL,r16
65
66 ; enable interrupts int0,int1
67 ldi r16,((1<<INT0)|(1<<INT1))
68 out GIMSK,r16
69 ; int0/1 setup
70 ldi r16,((1<<ISC01)|(1<<ISC00)|(1<<ISC11)|(1<<ISC10))
71 out MCUCR,r16
72 sbis PORTD,PORTD2
73 cbi MCUCR,ISC00
74 sbis PORTD,PORTD3
75 cbi MCUCR,ISC10
76
77 ; enable t/c overflow interrupt
78 sbi TIMSK,TOIE1
79 ; setup t/c
80 ldi r16,((1<<CS12)|(1<<CS11)|(1<<CS10))
81 out TCCR1B,r16
82
83 ; enable interrupts (global)
84 sei
85
86 ;
87 ; rec_card routine
88 ;
89
90 REC_CARD:
91
92 ; get port status
93 in .... continue here .. :)