最終更新: aodairoboconken 2011年12月05日(月) 14:49:31履歴
Makefile
Aodai02.c
Aodai02.oil
# Target specific macros NXTOSEK_ROOT = /nxtOSEK TARGET = Aodai02 TARGET_SOURCES = Aodai02.c TOPPERS_OSEK_OIL_SOURCE = ./Aodai02.oil # Don't modify below part O_PATH ?= build include $(NXTOSEK_ROOT)/ecrobot/ecrobot.mak
Aodai02.c
/****************************************************************************** * Aodai01.c 画面にセンサー値やモータ角度を表示する(マクロ定義(入力ポート)) *****************************************************************************/ #include "kernel.h" #include "kernel_id.h" #include "ecrobot_interface.h" /* マクロ定義 */ typedef enum InputPort { PORT_GYRO = NXT_PORT_S1, /* ジャイロセンサ用ポート : 1番 */ PORT_SONAR = NXT_PORT_S2, /* 超音波センサ用ポート : 2番 */ PORT_LIGHT = NXT_PORT_S3, /* 光センサ用ポート : 3番 */ PORT_TOUCH = NXT_PORT_S4 /* タッチセンサ用ポート : 4番 */ } InputPort; /* 初期処理 */ void ecrobot_device_initialize(void){ ecrobot_init_sonar_sensor(PORT_SONAR); /* 超音波センサI2C通信用に初期化する */ ecrobot_set_light_sensor_active(PORT_LIGHT); /* 光センサのLEDをON */ } /* 終了処理 */ void ecrobot_device_terminate(void){ ecrobot_term_sonar_sensor(PORT_SONAR); /* 超音波センサI2C通信用設定を解除する */ ecrobot_set_light_sensor_inactive(PORT_LIGHT); /* 光センサのLEDをOFF */ } void user_1ms_isr_type2(void){} TASK(DisplayTask) { while(1) { ecrobot_status_monitor("Aodairoboconken"); systick_wait_ms(500); /* 500ミリ秒待機する */ } }
Aodai02.oil
#include "implementation.oil" CPU ATMEL_AT91SAM7S256 { OS LEJOS_OSEK { STATUS = EXTENDED; STARTUPHOOK = FALSE; ERRORHOOK = FALSE; SHUTDOWNHOOK = FALSE; PRETASKHOOK = FALSE; POSTTASKHOOK = FALSE; USEGETSERVICEID = FALSE; USEPARAMETERACCESS = FALSE; USERESSCHEDULER = FALSE; }; APPMODE appmode1{}; TASK DisplayTask { AUTOSTART = TRUE { APPMODE = appmode1; }; PRIORITY = 1; ACTIVATION = 1; SCHEDULE = FULL; STACKSIZE = 512; }; };
このページへのコメント
JA83Ff Awesome post.Really looking forward to read more. Fantastic.
8o9uET Great blog post.Thanks Again. Really Cool.