Raspberry PiでLow Level I/Oを叩いてみる

Raspberry PiでGPIOをアクセスしてみます。
簡単な方法としては、/sys/class/gpio 以下にアクセスする方法があるのですが、今回は速度を重視して直接叩いてみることにしました。
基本のコードはこちらになるのですが、今回はそれをベースにインタフェース誌12月号の記事が書かれていて、さらに改良されているようなのでそちらのダウンロードページからサンプルプログラムを引っ張ってきて使ってみます。

ダウンロードしたサンプルプログラム集「sp01_sp07.zip」を解凍し、gpio_cフォルダ内のgpio_c.cをRaspberry Piの適当なフォルダにコピーします。

これを編集して、最後の部分のgpio_init()とtestmain()を修正します。今回はGPIO7にLEDをつけただけなので、下記のように修正しました。

void gpio_init()
{
	int i;
	setup_io();
	INP_GPIO(7); // must use INP_GPIO before we can use OUT_GPIO
	OUT_GPIO(7);
}

void testmain()
{
    int p;
    while(1){
        gpio_write(7,1);
        sleep(1);
        gpio_write(7,0);
        sleep(1);
    }        
}

修正後、

$ gcc gpio_c.c -o gpio_c
$ sudo ./gpio_c

として実行すると、1秒ごとにLEDが点灯と消灯を繰り返しました。

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)