*

ライブラリでRasPiのピンにアクセス(3)-割り込み対応

公開日: : 最終更新日:2020/05/05 C++, pigpio, RaspberryPi, 開発

どもです。

少し間が空いてしまいましたが、RaspberryPiのピンをより簡便に使用するためのライブラリについて書きます。
今回のエントリでは、割り込み対応処理を実装したので、それについて書きます。

1.実装したメソッド

割り込み対策のために、以下のメソッドを更新、あるいは新規に実装しています。

また、このCGpioクラスを使用するクラス、RaspberryPiに接続されたH/Wに対応するCPartクラスには、以下のコントラクタを追加しています。

2.実装した処理

割り込み処理は、下記のシーケンスで実装/動作します。
CGPio_interrupt

割り込みが発生はCGpioに通知され、それを受けてチャタリング処理の必要の有無の判断、処理を実行します。

3.メソッドの使い方

今回、新規に追加したメソッドのうち、使い方を意識する必要があるのはCPartクラスのコンストラクタ、および(上記に記載はしていませんが)「InterruptCallback」というメソッドです。
CPartクラスでは、InterruptCallbackは中身がありません。
なので、割り込みを使用する際には、CPartを継承したクラスを新規に作成し、InterruptCallbackをオーバーライドする必要があります。
オーバーライドしたメソッドについては、割り込みを受けて行う処理を実装して下さい。

4.サンプル

「ボタンでLEDのOn/Offを切り替える」サンプルを作成したので、紹介します。

4.1.コード

サンプルコードは、以下です。

まずは、「ボタン」に対応するクラスです。

LEDについては、既存のCPartクラスを適用します。
メイン関数は、下記です。

4.2.サンプル本体の解説

サンプルの内容は、実に簡単です。

割り込みが発生すると、ライブラリが上記関数を呼び出します。
その時に、対応するGPIOピンのレベル(HIGH/LOW)が通知されてきますので、その値をLED(targetPart_)に設定します。

以上です。

3.まとめ

今回は、ライブラリに追加した割り込み処理機能について書きました。
これでまた、RaspberryPi/C++での開発が楽になったかな…と思います。

ではっ!

ex

RaspberryPiでチャタリング処理を実装する際の注意点、特にpigpioを使用した場合の注意点を過去のエントリで書いています。
Linuxを使用する場合に、共通で意識しなければならない点でもあるかと思います。
参考にしていただければと思います。

QtでRaspberryPi/GUI開発(6):pigpioを使用したチャタリング対策
QtでRaspberryPi/GUI開発(7):pigpioを使用したチャタリング対策の問題
QtでRaspberryPi/GUI開発(8):pigpioを使用したチャタリング対策の問題の対策

関連記事

MY_MFC_LOGO

MFCプログラミング(4):Enter(ESC)キーでダイアログが閉じないようにする

どもです。 今回は、キーボード入力の処理、特にEnterキー/ESCキーでダイアログが閉じられるこ

記事を読む

Arduino_Logo

フォトレジスタを使ってみた-Arduinoで光検出

どもです。 今回は、タイトル通り「フォトレジスタの使い方」です。 1.フォトレジスタって何?

記事を読む

no image

Objective-CからC++コードを呼び出す

どもどもです。 今回は、突然ながらMacに関係する投稿です。 ソフト関係のことを勉強していて

記事を読む

cygwin_my_image

Windows10/cygwinの音を消す

どもです。 最近、Windows10/cygwinで作業をする場面がありました。 このcyg

記事を読む

eclipse-juno-logo

C言語でEV3開発(2)

どもです。 今回のエントリーの内容は、前回に引き続き「EV3の開発環境の構築」の追記です。

記事を読む

no image

Windows/EclipseでRaspberryPiのクロス環境を構築してみた

どもです。 今回は、Windows/EclipseでRaspberry Piのクロス環境を構築した

記事を読む

raspberry-pi

RaspberryPi3対応のタッチスクリーンを買いました

どもです。 ついに、念願のRaspberryPi3対応のタッチスクリーンを買いました。 今回のエ

記事を読む

google_test_top

C言語でEV3開発(5)

どもです。 今回のエントリーは、前回のエントリーでちくっと触れた、「単体テスト」について、です。

記事を読む

think_about_utest

単体テストの効率化を考える(6)-スタブの自動生成ツール

どもです。 「単体テストの効率化について考える」の6回目です。 1回目から5回目まではコチラ

記事を読む

raspberry-pi

ライブラリでRasPiのピンにアクセス(2)-SPIのインターフェース追加

どもです。 前回のエントリでは、RaspberryPiのピンをより簡便に使用できるようにするた

記事を読む

Message

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

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

think_about_utest
VisualStudioで実行した単体テストの結果の出力(3)-テスト実行からレポート生成までをツールで自動化

どもです。 前々回、前回と、VisualStudio/C#での単

think_about_utest
VisualStudioで実行した単体テストの結果の出力(2)-出力ファイルの読める化

どもです。 前回の続きです。 前回は、VisualStud

think_about_utest
VisualStudioで実行した単体テストの結果の出力(1)-ファイルへの出力

どもです。 最近、VisualStudio/C#でよく開発してい

think_about_utest
単体テストの効率化を考える(6)-スタブの自動生成ツール

どもです。 「単体テストの効率化について考える」の6回目です。

think_about_utest
単体テストの効率化を考える(5)-スタブの自動生成への入力

どもです。 「単体テストの効率化について考える」の5回目です。

→もっと見る

PAGE TOP ↑