[H8-ML(1595)] Re: 3664の動作について:教えてください。
From: 吉川 茂和 <yosikawa@xxxxxxxxxxxxxx>
Date: 2002年02月17日(日)23時16分54秒
吉川です

全部を公開する事は出来ないので、設定部分のみ送ります
リストファイルを出して怪しげな所を調べてみるのが良いと思います。

;-------------------------------------
;
	.PRINT	LIST		;リストファイルを出力
	.CPU 300HN		;CPUの指定
;
;-----シンボルの設定-----
RDR	.EQU	H'FFAD		;レシーブデータ 
TDR	.EQU	H'FFAB		;トランスミットデータ 
SMR	.EQU	H'FFA8		;シリアルモード 
;
SCR3	.EQU	H'FFAA		;シリアルコントロール 
RIE	.BEQU	6,SCR3
;
TXD	.BEQU	1,PMR1
;
SSR	.EQU	H'FFAC		;シリアルステータス 
TDRE	.BEQU	7,SSR
RDRF	.BEQU	6,SSR
TEND	.BEQU	2,SSR
OER	.BEQU	5,SSR
FER	.BEQU	4,SSR
PER	.BEQU	3,SSR
;
BRR	.EQU	H'FFA9		;ビットレート 
;
ADDRA	.EQU	H'FFB0		;A/Dデータ A
ADDRB	.EQU	H'FFB2		;A/Dデータ B
ADDRC	.EQU	H'FFB4		;A/Dデータ C
ADDRD	.EQU	H'FFB6		;A/Dデータ D
ADCSR	.EQU	H'FFB8		;A/Dコントロール/ステータス 
ADCR	.EQU	H'FFB9		;A/Dコントロール 
;
ICCR	.EQU	H'FFC4		;I2Cバスコントロール 
ICSR	.EQU	H'FFC5		;I2Cバスステータス 
ICDR	.EQU	H'FFC6		;I2Cバスデータ 
SARX	.EQU	H'FFC6		;第2スレーブアドレス 
ICMR	.EQU	H'FFC7		;I2Cバスモード 
SAR	.EQU	H'FFC7		;スレーブアドレス 
TSCR	.EQU	H'FFFC		;IICタイマコントロール
;
PUCR1	.EQU	H'FFD0		;ポートpullupコントロール 1
PUCR5	.EQU	H'FFD1		;ポートpullupコントロール 5
;
PDR1	.EQU	H'FFD4		;ポートデータ 1
PDR2	.EQU	H'FFD5		;ポートデータ 2
PDR5	.EQU	H'FFD8		;ポートデータ 5
PDR7	.EQU	H'FFDA		;ポートデータ 7
PDR8	.EQU	H'FFDB		;ポートデータ 8
PDRB	.EQU	H'FFDD		;ポートデータ B
;
PMR1	.EQU	H'FFE0		;ポートモード 1
PMR5	.EQU	H'FFE1		;ポートモード 5
;
PCR1	.EQU	H'FFE4		;ポートコントロール 1
PCR2	.EQU	H'FFE5		;ポートコントロール 2
PCR5	.EQU	H'FFE8		;ポートコントロール 5
PCR7	.EQU	H'FFEA		;ポートコントロール 7
PCR8	.EQU	H'FFEB		;ポートコントロール 8
;
SYSCR1	.EQU	H'FFF0		;システムコントロール 1
SYSCR2	.EQU	H'FFF1		;システムコントロール 2
MSTCR1	.EQU	H'FFF9		;モジュールスタンバイコントロール
IRR1	.EQU	H'FFF6		;割り込みフラグ
;
ADST	.BEQU	5,ADCSR		;ADの開始フラグ
ADF	.BEQU	7,ADCSR		;ADの測定終了フラグ
;
SCP	.BEQU	0,ICCR		;IICフラグ
IRIC	.BEQU	1,ICCR		;IICフラグ
BBSY	.BEQU	2,ICCR		;IICバスビジーフラグ
TRS	.BEQU	4,ICCR		;IICフラグ
MST	.BEQU	5,ICCR		;IICフラグ
;
ACKB	.BEQU	0,ICSR		;IICフラグ
IRTR	.BEQU	5,ICSR		;IICフラグ
;
;
;----- リセット、割り込みベクトルの指定 -----
;
	.SECTION ROM,CODE,LOCATE=H'0000
	.DATA.W	INIT				;リセットベクトル
;
	.ORG	H'002E
	.DATA.W	SCI_ULT			;受信割り込み
;
; ----- プログラム本体 -----
;
	.ORG		H'0034
INIT:
	MOV.L	#H'0000FF80,ER7		;スタックポインタ設定
;
	MOV.B	#H'00,R0L		;
	MOV.B	R0L,@SYSCR2
	MOV.B	#H'40,R0L		;System
	MOV.B	R0L,@SYSCR1
	MOV.B	R0L,@MSTCR1		;IICoff
PORT_INIT:
;	LDC.B	#H'80,CCR		;割り込みマスク
;	MOV.B	#H'00,R0L		;割り込みクリア
;	MOV.B	R0L,@IRR1
;
	MOV.B	#B'01100000,R0L	;P75.76を出力
	MOV.B	R0L,@PCR7
;
	MOV.B	#B'11111111,R0L	;P80-87を出力
	MOV.B	R0L,@PCR8
;
	MOV.B	#B'00000010,R0L	;P10-17を入出力ポート設定(TXD)
	MOV.B	R0L,@PMR1
	MOV.B	#B'00000011,R0L	;P10を出力
	MOV.B	R0L,@PCR1
	MOV.B	#B'11110000,R0L	;入力をpullup
	MOV.B	R0L,@PUCR1
;
	MOV.B	#B'00000000,R0L	;P50-55を入出力ポート設定
	MOV.B	R0L,@PMR5
	MOV.B	#B'00101111,R0L	;P50-53.55を出力
	MOV.B	R0L,@PCR5
	MOV.B	#B'00010000,R0L	;入力をpullup
	MOV.B	R0L,@PUCR5
;
SCI_INIT:
	MOV.B	#0,R0L
	MOV.B	R0L,@SCR3	;TE=0, RE=0, CKE1=0, CKE0=0
	MOV.B	R0L,@SMR	;シリアルモード(n=0)
;	MOV.B	#25,R0L		;19200bps(16M)
	MOV.B	#129,R0L	;2400bps(10M)
	MOV.B	R0L,@BRR	;N=
;
	JSR	@WAIT10m
	MOV.B	#H'30,R0L	;SCR3=0011 0000 (RIE=1,TE=1,RE=1)
	MOV.B	R0L,@SCR3	;
	BSET	TXD

	MOV.B	@SSR,R0L	;Dummy Read
	MOV.B	#H'80,R0L
	MOV.B	R0L,@SSR	;Clear Error Flag (TDRE=1)

	BSET	RIE		;
	ANDC.B	#B'01111111,CCR	;割り込みマスクをクリアする
;
;-------------------------------------
スレッド概略
[1594(R)](起点)
 └[表示中]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]