R8Cでハードフロー制御を行いたい時

こんにちは、NAKAと言います。

初歩的な質問かもしれませんが........

ハードフロー制御機能を持たない、R8Cのようなマイコンでハードフロー制御を行いたい場合
接続先のRTSをINPUTピンでモニタしながら行いたいと思っています。
マイコン側から割り込みを使った、TX(送信)を行おうと思いますが、接続先のRTSの準備ができて
いない場合、
①割り込み関数の中で、RTSがOKになるまで待つ(While(RTS)というように)
②接続先が準備できていないので受け取れないことを期待し、再度、送信空割り込みを発生させる
 ため、ダミーデータを送信レジスタに書いて、割り込み処理を抜ける。


を考えたのですが、

①の方法はRTSが準備できる間、CPUはその部分で止まってしまう。
②はダミーデータを送信レジスタに書いた直後にRTSが準備できた場合、不要なデータを送ってしまう。
というデメリットがあります。

一般的には、どのような方法を取るのでしょうか?

 

  • チョコです。 NAKAさん、かなり昔に作成したFAQの原稿が見つかりました。 (RL78での参照用に使ったので日付は新しくなっていますが) 同じものは下記のFAQに掲載されていますので、ご参考までに。 FAQ No. 1006964 (マイコン内蔵のUARTでの制御信号処理[共通的な内容]) http://japan.renesas.com/support/faqs/faq_results/Q1000000-Q9999999/mpumcu/78k/serial_057j.jsp
    マイコン内蔵のUARTでの制御信号処理.doc
  • kirinさん、リカルドさん、チョコさん ありがとうございますNAKAです。

    今回、ほとんどマイコン側から接続先にデータを送るだけなので、接続先へのCTSはGNDに接続しておこう!なんて

    横着を考えています。マイコン側はバッファも自由に増やせますし、ごくまれに来る接続先からの送信に"待った!"を

    かける事はないかなぁ~。

    こんな枯れたI/Fでもいろいろうんちくがあるんですねぇー。

    資料参考も"お宝"にさせていただきます。

    ほんとうにありがとうございました。