[H8-ML(5716)] Re: H8-2212 の歩調同期シリアル通信について
From: User YBB <ytqrm969@xxxxxxxxxxx>
Date: 2005年10月23日(日)18時40分04秒
--- Dragonfly <Dragonfly@xxxxxxxxx> からのメッセージ:
> H8-2212は使用したことがないのですが、データブックを見
るとSCIは初期状態
> でモジュールストップモードなので、それを解除してやると
いいのではないで
> しょうか?

 Dragonflyさん早速のアドバイスありがとうございます。

確かにモジュールストップモードを解除していませんでした!
SCI0,2について解除し動作させてみました....
なぜか結果は以前と同じく正常動作しませんでした。
また何か気づきましたらよろしく御願いします。

//--------------------------------program

void init_sci2(void){
	int i;
	volatile unsigned char tmp;

	SCI2.SCR.BYTE = 0x00;	// 0000 0000		// 設定終わるまで送
受信禁止
	// スマートカードインタフェースを使用しない
	SCI2.SCMR.BIT.SMIF = 0;
	//シリアルモードレジスタ
	SCI2.SMR.BYTE=0x00;		// 0000 0000	
	// シリアルボーレートレートレジスタ
	//SCI2.BRR=23;			// = N(Err rate 0% 19.2kbps)
	SCI2.BRR = 47;			// = N(Err rate 0% 9600kbps)

	// 1bit以上待つ
	for(i=0;i<50;i++);

	// シリアル通信ポート(Aポート)の入出力の設定
	PA.DDR = 0x0A;	// 0000 1010	A1:TX A2:RX A3:LED	
	SCI2.SSR.BIT.TDRE=0;		// clear(set 0) only writable 

	SCI2.SCR.BYTE = 0x30;	// 0011 0000	通信を許可

	return;

}

void  sci2_tx(char data){

	int i=0;

	while(SCI2.SSR.BIT.TDRE==0){
		i++;				// タイムアウト設定
		if(i==0xFFFF) break;
	};		// Transmit Data Register Empty

	SCI2.TDR = data;
	// データ送信中
	SCI2.SSR.BIT.TDRE=0;		// clear(set 0) only writable 

	return;

}

void main(void){

	// module stop control register B 
	MSTP.CRB.BIT._SCI0 = 0;
	MSTP.CRB.BIT._SCI2 = 0;
	// 0101 1111 7:SCI_0(OFF=ACTIVE) 5:SCI_2(OFF=ACTIVE)
0:USB(off)

	init_sci2();
	sci2_tx('a');

     return;
}


スレッド概略
[5714(R)](起点)
 └[5715(U)]
   └[表示中]
     ├[5717(1)]
     ├[5720(2)]
     └[5725(3)]


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


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