Intel Edison APIリファレンス

garretlab
mraa_gpio_isr_exit()

名称

mraa_gpio_isr_exit()

説明

mraa_gpio_isr()で作成したGPIOピンの割り込みハンドラを終了します。

書式

mraa_result_t mraa_gpio_isr_exit(mraa_gpio_context dev);

引数

dev GPIOのコンテキスト。mraa_gpio_init()で作成します。

戻り値

呼出に成功したときは、MRAA_SUCCESSが返却されます。

呼出が失敗したときは、MRAA_SUCCESS以外が返却されます。

使用例

動作確認するだけの、何の意味もない使用例です。printf()がスレッドセーフかどうかもわかっていません…

#include <mraa.h>

void isr(void *arg) {
        printf("Interrupt detected.\n");
        fflush(stdout);
}

int main() {
        mraa_gpio_context pin1, pin2, pin3;
        int i = 0;

        pin1 = mraa_gpio_init(13);
        pin2 = mraa_gpio_init(11);

        mraa_gpio_dir(pin1, MRAA_GPIO_OUT_LOW);
        mraa_gpio_dir(pin2, MRAA_GPIO_IN );

        mraa_gpio_mode(pin1, MRAA_GPIO_STRONG);

        mraa_gpio_isr(pin2, MRAA_GPIO_EDGE_RISING, isr, NULL);

        for (;;) {
                mraa_gpio_write(pin1, 1);
                sleep(1);

                mraa_gpio_write(pin1, 0);
                sleep(1);

                if (i == 5) {
                        mraa_gpio_edge_mode(pin2, MRAA_GPIO_EDGE_BOTH);
                } else if (i == 10) {
                        mraa_gpio_isr_exit(pin2);
                }
                i++;
        }

        return EXIT_SUCCESS;
}

その他

mraa_gpio_isr()で作成したスレッドに対して、pthread_cancel()を発行し、その後、pthread_join()を発行します。

バージョン

MRAA 0.7.3



メニューを表示するためにJavaScriptを有効にしてください。

Intel Edisonで遊ぶページ
Copyright © 2015 garretlab all rights reserved.
inserted by FC2 system