;------------------------------------------------------------------------------ ; Title : ps.asm ; Description : IR Object Perception Sensor ; Author : KAWAMOTO "nanashino" Yasuhisa ; Email : nanashi@yk.rim.or.jp ; Date : 04/23/2000 ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ ; History : 04/23/2000 動作クロックを10MHzから4MHzに変更 ; 04/22/2000 初期バージョン ;------------------------------------------------------------------------------ .include "1200def.inc" ;-- Modulation-freq(38.4KHz) and Baudrate(2400bps) setting -- .equ N=52 ; 13us@4.0MHz and R=1 ;.equ N=130 ; 13us@10.0MHz and R=1 .equ R=1 ; 1/1 .equ W=32 ; ;-- Global register -- .def t_tmp =r16 ; Scratch register .def t_sr =r17 ; Status register storage .def t_reload =r18 ; Reload register .def t_msk =r19 ; PORT mask register .def t_trn_bit =r20 ; Tramsmit bit register .def t_trn_st =r21 ; Status register .def t_trn_wc =r22 ; Wait counter .def t_wave =r23 ; Modulation wave register .def tmp =r24 ; Scratch register .def tmp2 =r25 ; Scratch register2 .def trn_dt =r26 ; Tramsmit data register .def one_c =r27 ; one counter ;-- Bit position in Status register -- .equ TD =0 ; Tramsmit ready bit .cseg ;-- Reset and interrupt vector -- .org $0000 rjmp main ; Reset handler .org INT0addr reti ; External interrupt handler (Not Used) .org OVF0addr rjmp tim0_ovf ; Timer0 overflow handler .org ACIaddr reti ; Analog comparator handler (Not Used) ;-- Timer0 overflow handler -- tim0_ovf: in t_sr,SREG ; Store SREG out TCNT0,t_reload ; Reload timer ;-- Modulation wave output -- com t_wave mov t_tmp,t_trn_bit or t_tmp,t_wave or t_tmp,t_msk out PORTB,t_tmp dec t_trn_wc brne trn_skip ldi t_trn_wc,W sbr t_trn_st,(1<