wiringPi のサンプルを参照して作ってみた。
01: #include <stdio.h> 02: #include <stdlib.h> 03: #include <mruby.h> 04: #include <mruby/compile.h> 05: #include <wiringPi.h> 06: 07: #define LED 0 08: 09: int main( void ) 10: { 11: int i ; 12: char s[32]; 13: 14: wiringPiSetup() ; 15: pinMode( LED, OUTPUT ) ; 16: 17: mrb_state *mrb ; 18: mrb = mrb_open() ; 19: 20: for ( i = 0 ; i < 10 ; i++ ) { 21: sprintf( s, "puts \'Hello No.%d\'\n", i ); 22: // printf( s ) ; 23: mrb_load_string(mrb, s ) ; 24: 25: digitalWrite( LED, HIGH ) ; // LED ON 26: delay (500) ; 27: digitalWrite( LED, LOW ) ; // LED OFF 28: delay( 500 ) ; 29: } 30: 31: mrb_close(mrb) ; 32: }
プログラムはそれなりにすぐ書けたけど、コンパイルが通らず、一苦労、コンパイル時にライブラリをリンクする必要があり、それが何処にあるのか分からずネットを探しまわった。それらしいのを見つけたけど、コンパイル時のエラーメッセージが良く分からず遠まわりしてしまった。
Makiefile を晒します。(ジーッと見つめないで)
01: CC = gcc 02: INCLUDES = -I/home/pi/mruby/include 03: DEBUS = 04: CFLAGS = $(DEBUG) $(INCLUDES) 05: LIBS = /home/pi/mruby/build/host/lib/libmruby.a 06: 07: LDFLAGS = -L/usr/local/lib 08: LDLIBS = -lwiringPi -lwiringPiDev -lpthread 09: 10: SRC = mrLED.c 11: 12: OBJ = $(SRC:.c=.o) 13: BINS = $(SRC:.c=) 14: 15: mrLED: mrLED.o 16: $Q echo "Start LED build" 17: $Q $(CC) $(CFLAGS) -o $@ mrLED.o $(LIBS) $(LDFLAGS) $(LDLIBS) -lm 18: 19: clean: 20: $Q echo "[Clean]" 21: $Q rm -f $(OBJ) *~ tags $(BINS)
配線は shell でLチカと同様です。
コンパイルと実行の様子。
0 件のコメント:
コメントを投稿