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 件のコメント:
コメントを投稿