OSDN Git Service

add kanjya's files
[tondenhei/et2013.git] / main.cpp
1 /* main.cpp for TOPPERS/ATK(OSEK) */ \r
2 \r
3 // ECRobot++ API\r
4 #include "Lcd.h"\r
5 #include "BlueTooth.h"\r
6 #include "Clock.h"\r
7 #include "GyroSensor.h"\r
8 #include "LightSensor.h"\r
9 #include "Motor.h"\r
10 #include "Nxt.h"\r
11 #include "SonarSensor.h"\r
12 #include "Speaker.h"\r
13 #include "TouchSensor.h"\r
14 \r
15 #include "tsprintf.h"\r
16 #include "ETLineTracer.h"\r
17 #include "ETLinePos.h"\r
18 #include "ETBalanceRunner.h"\r
19 \r
20 using namespace ecrobot;\r
21 \r
22 extern "C"\r
23 {\r
24 #include "kernel.h"\r
25 #include "kernel_id.h"\r
26 #include "ecrobot_interface.h"\r
27 \r
28 DeclareCounter(SysTimerCnt);//Alarm\97\98\97p\8e\9e\95K\97v\r
29 \r
30 // global object instances\r
31 Nxt nxt;\r
32 Lcd lcd;\r
33 Speaker speaker;\r
34 Bluetooth bt;\r
35 Clock clock;\r
36 GyroSensor gyro(PORT_1);\r
37 SonarSensor sonar(PORT_2);\r
38 LightSensor light(PORT_3);\r
39 TouchSensor touch(PORT_4);\r
40 Motor motorT(PORT_A);\r
41 Motor motorR(PORT_B);\r
42 Motor motorL(PORT_C);\r
43 \r
44 ETBalanceRunner runner(motorL,motorR,gyro,nxt);\r
45 ETLinePos linepos(light);\r
46 ETLineTracer tracer(linepos,runner);\r
47 \r
48 // nxtOSEK hook to be invoked from an ISR in category 2\r
49 void user_1ms_isr_type2(void)\r
50 {\r
51     //  //Sleep\97\98\97p\8e\9e\95K\97v\r
52     SleeperMonitor();\r
53     //  //Alarm\97\98\97p\8e\9e\95K\97v\r
54     StatusType ercd;\r
55     ercd = SignalCounter(SysTimerCnt);\r
56     if (ercd != E_OK) {\r
57         ShutdownOS(ercd);\r
58     }\r
59 }\r
60 \r
61 TASK(TaskMain)\r
62 {\r
63         lcd.clear();\r
64         lcd.putf("s", "Hello World");\r
65         lcd.disp();\r
66 \r
67         TerminateTask();\r
68 }\r
69 \r
70 TASK(Task4ms)\r
71 {\r
72         static int cnt = 0;\r
73         char str[16+1];\r
74         lcd.clear();\r
75         tsprintf(str,"cnt = %d",cnt++); // tsprintf \8eg\97p\97á\r
76         lcd.putf("s",str);\r
77         lcd.disp();\r
78 \r
79         tracer.RunTrace(100);\r
80 \r
81         TerminateTask();\r
82 }\r
83 \r
84 int __cxa_pure_virtual(){\r
85         // \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
86         // \82±\82ê\82ð\93ü\82ê\82È\82¢\82Æram\8eg\97p\97Ê\82ª\82Æ\82Ä\82à\91\9d\82¦\82é\81E\81E\81E\r
87         return 0;\r
88 }\r
89 \r
90 }       // extern "C"\r