割り込み動作を堪能 (C/C++) ーRaspberry Pi Picoへの道3ー

Home > Raspberry Pi > 割り込み動作を堪能 (C/C++) ーRaspberry Pi Picoへの道3ー
すき 1
うんこ 0

前回は Raspberry Pi Pico のWindowsでのC/C++環境構築 を行いました。

WindowsでのC/C++環境構築 ーRaspberry Pi Picoへの道2ー

 

当初はRaspberry Pi Picoの公式ドキュメントをしっかり読んできちんと理解しようと意気込んでいたのですが。。。

SDKの資料を読んでもよくわかりませんでした。 😥  特にCMakeLists.txtのこととか
 Pico C/C++ SDK

Raspberry Pi PicoのキモであろうPIOについても.pioファイルに謎の記述しないといけないなど使いこなせる気が全くしませんでした。

Raspberry Pi Pico をぶん投げてやろうかとも思いましたが、いつも通りサンプルコードをゴリゴリ
いじってやりたいことを達成していく いつものスタイルにもどします。

ソフトウェア難しすぎ。

 

 

割り込み動作

まずはGPIOによる割り込み動作の実現を目指します。

以下にC言語のサンプルコードがありました。
 https://github.com/raspberrypi/pico-examples/blob/master/gpio/hello_gpio_irq/hello_gpio_irq.c

サンプルコードを参考にGPIOに接続されたボタンを押すと、割り込みでシリアル出力するコードを作成しています。

構成

GPIO2ピンをプルアップしてタクトスイッチを接続しました。

 

Cコード

サンプルコードを参考にGPIO2がLOWレベルに落ちた時に割り込んでシリアル出力するコードを作成しました。

 

動作

 

本来はボタンを押したときに1回シリアル出力してほしいのですがチャタリングのように複数回出力されるときがあります。
これはRaspberry Pi Pico の動作が高速のためにボタンを押して信号が落ちきる前にしきい値付近で複数回判定してしまうために起きます。ESP32でも同様の動作となります。

 

おわりに

Raspberry Pi Picoの公式ドキュメントをしっかり読んで理解を深めるのはあきらめました。

いきなり頓挫してしまいましたが、サンプルコードを勉強してなんとか Raspberry Pi Picoをもちいてバーサライタ製作を実現したいと思っています。
噂ではSPIが非常に高速とのことなので非常に楽しみです。

今回は割り込み動作を試してみました。
次回は、Raspberry Pi Pico のGPIOが内部でプルアップ/プルダウンできるのかの調査と割り込みボタンのチャタリング対応を実施したいと思います。

それでは次の道でお会いしましょう!

追記

GPIOプルアップ (21/2/11)

次の記事

フォトリフレクタで割り込み動作 (C/C++) ーRaspberry Pi Picoへの道4ー

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

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