マイコンの実行速度は!? その2


前回の記事のPWMのソースについて実験したのでその結果の報告。
DSC01430.JPG
実験は下記のとおり
(1) if文(従来のもの)
(2) else if文((1)のif文をelse if文に直したもの)
(3) switch文
(4) 配列処理
(5) シフト処理
の5つを、実行速度と、cnt1の値による実行時間の変化をオシロスコープを用いて計測する。
cnt1は0のときと7の時の値を用いる。
結果は下記の通り

cnt1の値 実行時間(μs)
if文 0 11.12
7 11.12
else if文 0 6
7 11.12
switch文 0 8.82
7 8.82
配列 0 5.9
7 5.9
左シフト 0 6.1
7 10

色を付けているのはcnt1が0と7の時で同じ実行時間だったもの。
システムとして実行時間が変化するのは良くないで、else if文とシフトは除外される。
そこで速度で比較すると明らかに配列が高速なことが分かる。
よって配列を用いたPWMの出力を採用しようと思います。
実験に用いたソースは下記の通り。

ファイルをダウンロード – speed.c


追記
PWMのソースの新しいのを公開しました。

http://dream-drive.net/robot/pwm.htm

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

アーカイブ

広告

Top