電子工作etc
■PICのA/D変換時間(関数比較)
★概要
使用しているコンパイラ 「mikroC PRO for PIC」が、v3.2からv3.8にバージョンアップしました。
追加された関数の一つに、A/D変換関数があります。
・既存関数 → ADC_Read関数
・追加関数 → ADC_Init関数、ADC_Get_Sample関数
そこで、今後の製作に役立つのではと考え、既存関数と追加関数によるA/D変換時間を比較してみました。
★実験内容
PIC12F683を、8MHzクロックで使用した時のA/D変換時間を測定しました。
<既存関数の測定の流れ> ※スイッチ(SW1)をOFFにします。
・TPを“1”にします。
・ADC_Read関数でA/D変換を1000回行います。
・TPを“0”にします。
・ADC_Read関数でA/D変換を1000回行います。
・これらの処理を繰り返します。
※TPが“1”になってから“0”になるまでの時間をオシロスコープで観測します。
<追加関数の測定の流れ> ※スイッチ(SW1)をONにします。
・TPを“1”にします。
・ADC_Init関数でADCを初期化します。
・ADC_Get_Sample関数でA/D変換を1000回行います。
・TPを“0”にします。
・ADC_Init関数でADCを初期化します。
・ADC_Get_Sample関数でA/D変換を1000回行います。
・これらの処理を繰り返します。
※TPが“1”になってから“0”になるまでの時間をオシロスコープで観測します。
★実験回路図
★実験プログラム
|
for (cnt = 0; cnt < 1000; cnt++) { |
|
for (cnt = 0; cnt < 1000; cnt++) { |
|
for (cnt = 0; cnt < 1000; cnt++) { |
|
for (cnt = 0; cnt < 1000; cnt++) { |
★実験の様子と結果
<ADC_Read関数を使用した場合>
・1000回のA/D変換時間は、約74msecです。
・1回あたりの変換速度は、約74usecです。
<ADC_Init関数+ADC_Get_Sample関数を使用した場合>
・1000回のA/D変換時間は、約70msecです。
・1回あたりの変換速度は、約70usecです。
如何ですか?
※A/D変換時間を少しでも、短縮する際の参考になれば幸いです。

電子工作etc
|