C言語でLED操作
WiringPi のC言語用ライブラリを使えば
C言語でGPIOポートを制御するプログラムをかける
C言語の基礎は
ドットインストールを参考にするとわかりやすい
http://dotinstall.com/lessons/basic_c
で基礎の動画みれます
基本文法はこれでいいけど
Wiring Pi の関数も覚える必要があるので
https://projects.drogon.net/raspberry-pi/wiringpi/functions/
を参考に
(英語のサイトになります)
この中で使うのとしては
wiringPiSetupGpio()
これで WiringPi の初期化
gpio -g を使ったのと同じようにGPIOポートで指定するために宣言する
pinMode(GPIOポート番号, モード)
指定したGPIOポートのモードを設定
出力なら OUTPUT になる
pinMode(4,OUTPUT);
というように書く
ほとんどの場合はポート番号は定数にする
digitalWrite(GPIOポート番号, 値)
指定したGPIOポート番号に値を出力する
値は
1
0
のどちらかになる
digitalWrite(4,1);
これらを元にC言語ファイルを作成
vim led.c
内容は
#include<wiringPi.h>
#define LED_PORT 4
int main(void){
int i;
//初期化
if(wiringPiSetupGpio() == -1) return 1;
pinMode(LED_PORT,OUTPUT);
for(i=0;i<10;i++){
//LED ON
digitalWrite(LED_PORT,1);
delay(500);
digitalWrite(LED_PORT,0);
delay(500);
}
return 0;
}
がソースになる
なお定数の宣言で ; を最後につけるとエラーになる
#define LED_PORT 4
に注意
次にコンパイル
cc -o led led.c -lwiringPi
構文は
cc -o 好きな名前 ソースファイル名 -lwiringPi
となる
実行するには
sudo ./led
とする
管理者権限が必要なので sudo をつける必要がある
これをつけないと
wiringPiSetup: Must be root. (Did you forget sudo?)
と言うエラーがでてくるので注意
実行するとLEDの点灯と消灯を10回繰り返す