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が点灯と消灯を繰り返しました。
