REC_CARD
[my-code/atmel.git] / beginners / season_junior.asm
index 9c02191..95f8e51 100644 (file)
@@ -6,11 +6,15 @@
 
 ; at90s2313
 ; setup:
-; vcc card --- vcc cam
-; rst card --- rst cam --- atmel t0 (pd4)
-; clk card --- clk cam --- atmel t1 (pd5)
+; vcc card --- atmel vcc
+; vcc cam  --- 
+; rst cam  --- atmel int0 (pd2)
+; rst card --- atmel (pd4)
+; clk card -\ 
+;            -  atmel t1 (pd5)
+; clk cam  -/
 ; gnd card --- gnd cam --- atmel gnd
-; i/o card --- atmel int0 (pd2)
+; i/o card --- atmel icp (pd6)
 ; i/o cam  --- atmel int1 (pd3)
 
 .include "../include/2313def.inc"
 rjmp INIT
 
 ; int0
-rjmp REC_CARD
+rjmp RST_CAM
 
 ; int1
 rjmp REC_CAM
 
 ; timer/counter capt 1
-reti
+rjmp REC_CARD
 
 ; timer/counter compare
 reti
 
 ; timer/counter overflow 1
-rjmp T1_OVERFLOW
+rjmp CLK_OVERFLOW
 
 ; timer/counter overflow 0
 reti
@@ -58,7 +62,7 @@ reti
 reti
 
 ; uart data register empty
-reti
+rjmp UART_OUT
 
 ; uart tx complete
 reti
@@ -70,6 +74,9 @@ reti
 ; init routine
 ;
 
+MAIN:
+rjmp MAIN
+
 INIT:
 
 ; set stackpointer
@@ -82,25 +89,19 @@ out GIMSK,r16
 ; int0/1 setup
 ldi r16,((1<<ISC01)|(1<<ISC00)|(1<<ISC10)|(1<<ISC11))
 out MCUCR,r16
-in r16,MCUCR
-sbic PORTD,PD2
-cbr r16,ISC00
-out MCUCR,r16
-sbic PORTD,PD3
-cbr r16,ISC10
-out MCUCR,r16
 
-; enable t/c overflow interrupt
-ldi r16,(1<<TOIE1)
+; enable t/c overflow interrupt and icp
+ldi r16,((1<<TOIE1)|(1<<TICIE1))
 out TIMSK,r16
-; setup t/c
-ldi r16,((1<<CS12)|(1<<CS11)|(1<<CS10))
+; setup t/c and icp
+ldi r16,((1<<CS12)|(1<<CS11)|(1<<CS10)|(1<<ICNC1))
 out TCCR1B,r16
 
 ; init bitcounter and overflow counter
 ldi r20,0 ; bitcounter
 ldi r21,0 ; register for constructing the byte
 ldi r22,0 ; overflow counter
+ldi r23,0 ; temp reg
 
 ; constant 1 in r1
 ldi r16,1
@@ -109,31 +110,46 @@ mov r1,r16
 ; enable interrupts (global)
 sei
 
+; jump to mainloop
+rjmp MAIN
+
+;
+; main routine
+;
+
+MAIN:
+
+rjmp MAIN
+
 ;
 ; rec_card routines
 ;
 
 REC_CARD:
 
-; int0 -> input, int1 -> output
-ldi r16,(1<<DDD3)
-out DDRD,r16
-
 ; decide what to do
-sbic PORTD,PD2
+sbic PORTD,PD6
 rjmp REC_CARD_HIGH
 rjmp REC_CARD_LOW
 
 REC_CARD_HIGH:
 
 ; output high on port to cam
-ldi r16,(1<<PD3)
-out PORTD,r16
+sbi PORTD,PD3
 
-; toggle int0 sense
-in r16,MCUCR
-cbr r16,ISC00
-out MCUCR,r16
+; toggle icp sense
+cbi TCCR1B,ICES1
+;in r16,TCCR1B
+;cbr r16,ICES1
+;out TCCR1B,r16
+
+; build the byte ;) - still wrong!
+ori r21,1
+lsl r21
+
+;
+; hier gehts weiter ...
+;
 
 reti