[H8-ML(2737)] Re: データ送信がうまくいきません
From: Kosaka Toshifumi <kosaka@xxxxxxxxxxxxxx>
Date: 2003年01月21日(火)11時29分23秒
こんにちは,小坂です。
あいらんどさん,コメントありがとうございました。
CPUに対して遅い応答の8251のことを念頭においていたのですが,速い応答のこともあるから,そう単純ではないのですね。
コメントのTXRDY==0とTXRDY==1の表現は逆だと思いますが,意味は理解できました。
結局多田さんが行なっている割り込みを利用した「受け付け確認」方法が確実ということになると思いました。(while (TXRDY==1);の部分をstatusのTXRDYではなく信号のTxRDYの立下りエッジで行なっていると解釈しました。信号なので,応答が速かった場合もOKだし,他の要因の割り込みが入ることによる確認時期の遅れもない)

H8のsciではこのような苦労を知らなかったので,大変参考になりました。
ありがとうございました。

At 21:11 03/01/20 +0900, あいらんど wrote:
> > while (TXRDY==0);
> > DATAto8251=mychar;
> > while (TXRDY==1);
> > 
> 送信バッファと送信シフトレジスタが空の時に
>最初の1バイト目を書き込んだ後、すぐにステータスレジスタ
>を読みに行った時、TXRDY==1の状態を通り越してしまいTXRDY==0に
>なっている可能性がありそうですね。
> それにデータ書き込み−ステータス読み出しの間に割り込みが入る
>ことも考慮しなくてはなりません。
> その場合は3ステップ目で永久ループになっちゃいます。


****************************************************
〒193 0997 八王子市椚田町1220-2 東京工業高等専門学校
情報工学科 小坂敏文 phone0426-68-5199 Fax68-5098

スレッド概略
[2708(R)](起点)
 └[2734(U)]
   └[表示中]


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


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