--- 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;
}