こんにちわ
> 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;
>
の
> SCI2.SSR.BIT.TDRE=0; // clear(set 0) only writable
を削除してみてください。
SCI2.SSR.BIT.TDRE=1になる条件は、SCR(TE)=0を設定するときなので、
この行があると、sci2_tx実行時に、TDREが1になっていないと思います。
上田