ラズベリーパイのGPIO応答速度を測定(C言語編)

前回、PythonでGPIO応答速度測定をしましたが、C言語でもやってみました。

C言語ではWiring Piライブラリーなどを使うようです。

Wiring Piは以下のようにインストールします。

コードは前回のPythonコードに準じて、以下のようにしました。

ピンの名前を少し変えています。あとピン番号はPythonのときはBCMピン番号でしたが、Wiring Piは独自のピン番号のようです。

Wiring PiのWeb Siteで作者の主張を少し読みましたがよくわかりませんでした。が、作者のお気に召すままに、ということでWiring Pi独自ピン番号に合わせています。具体的には”gpio readall”でピンアサインがわかります。

Wiring Pi Pin assiment

swIn(今回はSW_IN)は18ピン→1ピン、ledOut(今回はSW_OUT)は17ピン→0ピン、ledOnOffIn(今回はLOOP_END_IN)は23ピン→4ピンになります。

Nucleoのプログラムや配線は前回と同じです。

Wiring PiのWeb Siteにかかれているようにcompile & runします。

あと前回のNucleo用反応速度測定プロジェクトのインプットキャプチャー割り込み処理に以下の3行を足して測定回数と平均値を取るようにしました。

そして前回と同じように青ボタンを押して反応時間をSTM32CubeIDE Debuggerで測定してみると何と約0.42usでした。

GPIO response test result by c

1usを切るくらいだと本当にマイコン的に使えそうですね。

終わり

コメントを残す

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