1 /* main.cpp for TOPPERS/ATK(OSEK) */
\r
5 #include "Bluetooth.h"
\r
7 #include "GyroSensor.h"
\r
8 #include "LightSensor.h"
\r
11 #include "SonarSensor.h"
\r
12 #include "Speaker.h"
\r
13 #include "TouchSensor.h"
\r
15 #include "tsprintf.h"
\r
16 #include "ETLineTracer.h"
\r
17 #include "ETLinePos.h"
\r
18 #include "ETBalanceRunner.h"
\r
20 using namespace ecrobot;
\r
25 #include "kernel_id.h"
\r
26 #include "ecrobot_interface.h"
\r
28 DeclareCounter(SysTimerCnt);//Alarm
\97\98\97p
\8e\9e\95K
\97v
\r
30 // global object instances
\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
44 ETBalanceRunner runner(motorL,motorR,gyro,nxt);
\r
45 ETLinePos linepos(light);
\r
46 ETLineTracer tracer(linepos,runner);
\r
48 // nxtOSEK hook to be invoked from an ISR in category 2
\r
49 void user_1ms_isr_type2(void)
\r
51 // //Sleep
\97\98\97p
\8e\9e\95K
\97v
\r
53 // //Alarm
\97\98\97p
\8e\9e\95K
\97v
\r
55 ercd = SignalCounter(SysTimerCnt);
\r
64 lcd.putf("s", "Hello World");
\r
67 // TODO:
\82Æ
\82è
\82 \82¦
\82¸
\82Ì
\83L
\83\83\83\8a\83u
\83\8c\81[
\83V
\83\87\83\93\r
68 static const int sum_num = 256;
\r
69 unsigned long sum = 0;
\r
71 //
\83W
\83\83\83C
\83\8d\r
72 while(!touch.isPressed()){
\r
74 while(touch.isPressed()){
\r
76 for(int i=0;i<sum_num;i++){
\r
80 unsigned long offset = sum / sum_num;
\r
81 runner.SetGyroOffset(offset);
\r
82 tsprintf(str,"Offset = %d",offset);
\r
86 speaker.playTone(1000,100,50);
\r
89 while(!touch.isPressed()){
\r
91 while(touch.isPressed()){
\r
94 for(int i=0;i<sum_num;i++){
\r
95 sum += light.getBrightness();
\r
98 unsigned long white = sum / sum_num;
\r
99 linepos.SetWhite(white);
\r
100 tsprintf(str,"White = %d",white);
\r
104 speaker.playTone(1200,100,50);
\r
107 while(!touch.isPressed()){
\r
109 while(touch.isPressed()){
\r
112 for(int i=0;i<sum_num;i++){
\r
113 sum += light.getBrightness();
\r
116 unsigned long black = sum / sum_num;
\r
117 linepos.SetBlack(black);
\r
118 tsprintf(str,"Black = %d",black);
\r
122 speaker.playTone(1400,100,50);
\r
124 while(!touch.isPressed()){
\r
126 while(touch.isPressed()){
\r
134 static int cnt = 0;
\r
137 tsprintf(str,"cnt = %d",cnt++); // tsprintf
\8eg
\97p
\97á
\r
141 tracer.RunTrace(100);
\r
146 int __cxa_pure_virtual(){
\r
147 //
\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
148 //
\82±
\82ê
\82ð
\93ü
\82ê
\82È
\82¢
\82Æram
\8eg
\97p
\97Ê
\82ª
\82Æ
\82Ä
\82à
\91\9d\82¦
\82é
\81E
\81E
\81E
\r