--- /dev/null
+/* main.cpp for TOPPERS/ATK(OSEK) */ \r
+\r
+// ECRobot++ API\r
+#include "Lcd.h"\r
+#include "BlueTooth.h"\r
+#include "Clock.h"\r
+#include "GyroSensor.h"\r
+#include "LightSensor.h"\r
+#include "Motor.h"\r
+#include "Nxt.h"\r
+#include "SonarSensor.h"\r
+#include "Speaker.h"\r
+#include "TouchSensor.h"\r
+\r
+#include "tsprintf.h"\r
+#include "ETLineTracer.h"\r
+#include "ETLinePos.h"\r
+#include "ETBalanceRunner.h"\r
+\r
+using namespace ecrobot;\r
+\r
+extern "C"\r
+{\r
+#include "kernel.h"\r
+#include "kernel_id.h"\r
+#include "ecrobot_interface.h"\r
+\r
+DeclareCounter(SysTimerCnt);//Alarm\97\98\97p\8e\9e\95K\97v\r
+\r
+// global object instances\r
+Nxt nxt;\r
+Lcd lcd;\r
+Speaker speaker;\r
+Bluetooth bt;\r
+Clock clock;\r
+GyroSensor gyro(PORT_1);\r
+SonarSensor sonar(PORT_2);\r
+LightSensor light(PORT_3);\r
+TouchSensor touch(PORT_4);\r
+Motor motorT(PORT_A);\r
+Motor motorR(PORT_B);\r
+Motor motorL(PORT_C);\r
+\r
+ETBalanceRunner runner(motorL,motorR,gyro,nxt);\r
+ETLinePos linepos(light);\r
+ETLineTracer tracer(linepos,runner);\r
+\r
+// nxtOSEK hook to be invoked from an ISR in category 2\r
+void user_1ms_isr_type2(void)\r
+{\r
+ // //Sleep\97\98\97p\8e\9e\95K\97v\r
+ SleeperMonitor();\r
+ // //Alarm\97\98\97p\8e\9e\95K\97v\r
+ StatusType ercd;\r
+ ercd = SignalCounter(SysTimerCnt);\r
+ if (ercd != E_OK) {\r
+ ShutdownOS(ercd);\r
+ }\r
+}\r
+\r
+TASK(TaskMain)\r
+{\r
+ lcd.clear();\r
+ lcd.putf("s", "Hello World");\r
+ lcd.disp();\r
+\r
+ TerminateTask();\r
+}\r
+\r
+TASK(Task4ms)\r
+{\r
+ static int cnt = 0;\r
+ char str[16+1];\r
+ lcd.clear();\r
+ tsprintf(str,"cnt = %d",cnt++); // tsprintf \8eg\97p\97á\r
+ lcd.putf("s",str);\r
+ lcd.disp();\r
+\r
+ tracer.RunTrace(100);\r
+\r
+ TerminateTask();\r
+}\r
+\r
+int __cxa_pure_virtual(){\r
+ // \8f\83\90\88\89¼\91z\8aÖ\90\94\82ª\83I\81[\83o\81[\83\89\83C\83h\82µ\82È\82¢\82Å\8cÄ\82Ñ\8fo\82³\82ê\82½\8e\9e\82Ì\83G\83\89\81[\83n\83\93\83h\83\89\82ð\8bó\8eÀ\91\95\r
+ // \82±\82ê\82ð\93ü\82ê\82È\82¢\82Æram\8eg\97p\97Ê\82ª\82Æ\82Ä\82à\91\9d\82¦\82é\81E\81E\81E\r
+ return 0;\r
+}\r
+\r
+} // extern "C"\r