"Kazutoshi Fukui" <fukui@xxxxxxxxxxxxxxx> 様
おはようございます。 亀田@fellowです。
【2000年6月5日(月)9時27分15秒】頃に送信された
【[H8-ML(636)] シリアル通信について】に関して回答します。
>シーケンサへはコマンドを送って、そのレスポンスを見ているのですが
>キーボードからのコマンド入力だと正常にレスポンスが返るのですが、
>コマンドを#defineなどで初期化して、while文でコマンドを送りつづけると、
>レスポンスが文字化けしたり、LCDにprintfでパソコンのモニタに表示させていた
>文字が表示されたり、不可解な動作をします。
どのような環境で開発&デバッグされているか不明なので、
適切な回答ではないかもしれませんが...(^^;)
※キーボードから手動送信(?)なら動くが、
ソフトで処理すると文字化け・動作異常となる。
この話からピンとくるのは
「処理が間に合ってないのでは?」
と言う事です。
☆ whileで連続送信している??
・送受信の処理時間は十分に取れてますか?
whileの処理ループで連続送信しているのであれば、
次回送信までwaitを入れて送信間隔の時間を取ってみてはいかがでしょう?
・受信割り込みがあった場合、受信処理が完了するまで送信を
中止するような作りにしてみれば良いのかもしれませんね。
☆ 文字が化ける??
・フレーミングエラーとか起きてないでしょうか?
シリアルポートのステータスレジスタ状態をチェックするように
して、エラーを確認してみては如何でしょう?
・送受信用バッファのダンプを取って、内容を確認してみては?
私が思いつくアドバイス(?)はこの程度です...(^^;)
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
_/_/_/ 有限会社 フェローシステム 亀田 秀樹 _/_/_/
_/_/_/ 〒790-0822 愛媛県松山市高砂町2丁目2-9 西岡ビル1F _/_/_/
_/_/_/ TEL (089)926-3405 / FAX (089)926-3415 _/_/_/
_/_/_/ e-mail : kameda@xxxxxxxxxxxx _/_/_/
_/_/_/ Home Page : http://www.fellow.co.jp/ _/_/_/