OSDN Git Service

add kanjya's files
[tondenhei/et2013.git] / main.cpp
diff --git a/main.cpp b/main.cpp
new file mode 100644 (file)
index 0000000..a13d182
--- /dev/null
+++ b/main.cpp
@@ -0,0 +1,90 @@
+/* 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