3048、日立C V-3.0B R1、
1msec の タイマー 割り込みで 、多重割り込み許可した上で、2
msec間 通せんぼ(1msec タイマー値更新をループで待つ)したら、
SCI1 の、送信で 再送信直後の 1文字が 抜け、化けを おこして
いました。 原因は SSR をバイトで 読んでいなかった点でした。
if(1==SSI1.SSR.BIT.TDRE); 等のみでは、動作が おかしくなって
います。 フェイクで、RE,RI,TI,TEI 割り込みの最初に
int i;
i=SCI1.SSR;
を 行うと、動作が 正常になりました。 割り込み動作で、クリティカ
ルなタイミングが ない場合、ビット操作のみで正常動作していました。
各フラグ ビットの 確認ではなく、SSR そのものを読むことで、改善
された様に 感じます。 関連の、経験をされた方、ご意見をお聞か
せ下さい。
杉本
〒226-0002 横浜市緑区
東本郷 6-17-1-602
オンボード tel 045-473-7678
fax 045-474-5351