void test_motor1(void) { byte motors[1]; inline "arrinit test_motor1_motors, 0, 1"; motors[0]=MOTOR_A; COP_DrawText(1,1,"Test1 : Motor A"); COP_RotateMotor(motors,30, 720); COP_Wait(5000); motors[0]=MOTOR_B; COP_DrawText(1,1,"Test1 : Motor B"); COP_RotateMotor(motors,30, 720); COP_Wait(5000); motors[0]=MOTOR_C; COP_DrawText(1,1,"Test1 : Motor C"); COP_RotateMotor(motors,30, 720); COP_Wait(5000); motors[0]=MOTOR_C; COP_DrawText(1,1,"Test1 : Motor C neg"); COP_RotateMotor(motors,30, -720); COP_Wait(5000); } void test_motor2(void) { byte motors[3]; inline "arrinit test_motor2_motors, 0, 3"; motors[0]=MOTOR_A; motors[1]=MOTOR_B; motors[2]=MOTOR_C; COP_DrawText(1,1,"Test2 : Motor fwd A,B,C"); COP_RotateMotorOnFwd(motors,30); COP_Wait(5000); COP_DrawText(1,1,"Test2 : Stop A,B,C"); COP_RotateMotorStop(motors); COP_Wait(2000); COP_DrawText(1,1,"Test2 : Motor rev A,B,C"); COP_RotateMotorOnRev(motors,30); COP_Wait(5000); COP_DrawText(1,1,"Test2 : Coast A,B,C"); COP_RotateMotorCoast(motors); COP_Wait(2000); } void test_motor3(void) { byte motors[2]; char boucle[20]; char boucle1[20]; sint i; inline "arrinit test_motor3_motors, 0, 2"; motors[0]=MOTOR_A; motors[1]=MOTOR_B; /*motors[2]=0x02;*/ for(i=-20;i<30;i=i+10) { COP_NumtoString(i,boucle); COP_Strcat(boucle1,"turnpct=",boucle); COP_DrawText(1,30,boucle1); COP_DrawText(1,20,boucle1); COP_DrawText(1,10,boucle1); COP_DrawText(10,1,boucle1); COP_DrawText(20,1,boucle1); COP_DrawText(30,1,boucle1); COP_Wait(5000); COP_DrawText(1,1,"Test3 : Motor Sync fwd A,B"); COP_RotateMotorOnFwdSync(motors,30,i); COP_Wait(5000); COP_DrawText(1,1,"Test3 : Stop A,B"); COP_RotateMotorStop(motors); COP_Wait(2000); COP_DrawText(1,1,"Test3 : Motor Sync fwd A,B"); COP_RotateMotorOnRevSync(motors,30,i); COP_Wait(5000); COP_DrawText(1,1,"Test3 : Coast A,B,C"); COP_RotateMotorCoast(motors); COP_Wait(2000); } } void test_sensor(void) { int i; int value; char boucle[20]; char boucle1[20]; COP_InitSensors(); COP_ResetTouchDetector(); /* touch */ for(i=0;i<2000;i++) { value=COP_ReadTouchDetector(); COP_NumtoString(value,boucle); COP_Strcat(boucle1,"Touch=",boucle); COP_DrawText(1,1,boucle1); } /* light */ COP_SetSensorModeLight_pct(); COP_ResetLightDetector(); for(i=0;i<2000;i++) { if(i==1000) COP_SetSensorModeLight_raw(); value=COP_ReadLightDetector(); COP_NumtoString(value,boucle); if(i<1000) COP_Strcat(boucle1,"% Light=",boucle); else COP_Strcat(boucle1,"R Light=",boucle); COP_DrawText(1,1,boucle1); } /* ultrasonic */ COP_SetSensorModeUltraSonic_pct(); COP_ResetUltraSonicDetector(); for(i=0;i<2000;i++) { if(i==1000) COP_SetSensorModeUltraSonic_raw(); value=COP_ReadUltraSonicDetector(); COP_NumtoString(value,boucle); if(i<1000) COP_Strcat(boucle1,"% UltraSonic=",boucle); else COP_Strcat(boucle1,"R UltraSonic=",boucle); COP_DrawText(1,1,boucle1); } /* Sound */ COP_SetSensorModeSound_pct(); COP_ResetSoundDetector(); for(i=0;i<2000;i++) { if(i==1000) COP_SetSensorModeSound_raw(); value=COP_ReadSoundDetector(); COP_NumtoString(value,boucle); if(i<1000) COP_Strcat(boucle1,"% Sound=",boucle); else COP_Strcat(boucle1,"R Sound=",boucle); COP_DrawText(1,1,boucle1); } } task main() { int i,j; int lg; char boucle[10]; char concat[100]; char concat1[100]; char concat2[100]; COP_Malloc(concat,100); COP_Malloc(concat1,100); COP_Malloc(concat2,100); COP_SetScreenMode(); COP_DrawText(1,1,"Debut test"); COP_Wait(2000); /*goto test1;*/ lg=COP_Strlen("ABC"); COP_NumtoString(lg,boucle); COP_DrawText(1,1,boucle); COP_Wait(2000); for(j=0;j<2;j++) { COP_NumtoString(j,boucle); COP_DrawText(1,1,boucle); for(i=0;i<1000;i++) { COP_SoundPlayTone(i,500,10,3); } for(i=1000;i>0;i--) { COP_SoundPlayTone(i,500,10,3); } } COP_Strcpy(concat,"ALPHA"); COP_DrawText(1,1,concat); COP_Wait(2000); COP_Strcpy(concat1,"BET"); COP_DrawText(1,1,concat1); COP_Wait(2000); COP_Strcat(concat2,concat,concat1); COP_DrawText(1,1,concat2); COP_Wait(2000); COP_DrawText(1,1,"--------------"); COP_Wait(2000); COP_Strcat(concat2,"TOUTAN","KAMON"); COP_DrawText(1,1,concat2); COP_Wait(2000); test1: test_motor1(); /*goto fin;*/ test_motor2(); test_motor3(); test_sensor(); fin: }