• ベストアンサー

PICの処理の重さについて

質問します。PICでデータ通信(RS232C)や、PIC内での乗算などをしていますが、データを送受信するのと、PIC内で乗算する処理はどちらがPICにとっては負担となるのでしょう?

質問者が選んだベストアンサー

  • ベストアンサー
  • kuro804
  • ベストアンサー率29% (523/1762)
回答No.2

ANo1さんに対する回答で質問内容が明確になりましたのでそれに応えて。 まず、すでにPCとの通信のやりとりが実装できていれば問題点は データー転送と応答の一連の処理が時間的に間に合うか否かで、PC側に託せる仕事と、PIC自体でやらなければならない仕事が区別できるのではないでしょうか。 通常、このような場合は、PIC側で採取された基礎データを処理なしで全てをPC側に転送、PC側で全てのデータを管理し、処理の変更は可能な限りPC側で行えるようにし、PICは可能な限りシンプルに、外部I/Oの処理と通信処理、エラー処理に限定し設計すればいろんな面でメリットが生じます。 逆に、PIC側がシンプルに設計できない理由があれば、PC側に処理させるメリットは少ないでしょう。 *通信処理、エラー処理は結構技量が問われる魅力的なものです。  ハード、ソフトの両者から一目置かれる存在になります。  今もラジオでどこかの端末が障害を起こしたと伝えてました。銀行のATMでしょうか? RS232Cの処理時間の考察  安定性重視で速度を19200bps程度と仮定しますと2バイトで約1m秒、20バイトで0.01秒はかかります。 割り込みを使いリングバッファー方式なら技量は必要でしょうが処理の負担は倍精度演算ほどは必要ないでしょう。 しかし、送信データに対応した相手方の応答を必要とした場合はさらなる技量が要求されますがPIC自体の負担は少ないでしょう。

aoisango
質問者

補足

ありがとうございました!

その他の回答 (1)

  • P0O9I
  • ベストアンサー率32% (693/2146)
回答No.1

PICの種類やプログム方式で変わってきます。 乗算命令を持っているPICで、その精度でよければ1命令で実行できます。高精度が必要であったり、乗算命令持っていない場合はライブラリを使い、数十~数百ステップかかります。データ通信も割り込みを使うか、どうか等で大きく変わります。 必要ならアセンブラレベルにして、ステップ数を数えるとかかる時間を得ることができます。PICは通常外部素子にアクセスしたり、キャッシュメモリ等を持っていないため、ステップ数×1ステップの時間 で正確にかかる時間を計算できます。 しかし、データを送受信と、乗算演算の時間を比較して、どういう意味があるのですか。

aoisango
質問者

お礼

ありがとうございます。データをPICからPCに送って計算させてPIにもどすか、PIC内でデータの計算させるのとでは、どちらがPICに負担をかけないのか知りたかったので質問しました。PIC内では他にもさまざまな処理を行っています。

関連するQ&A