|
本人新手,学习了一段时间的NXC,一直只是阅读别人的程序,初次尝试将9695+9797中RoboArm程序改写成NXC如下,还请各位看看有没有不妥之处。- sub Arm_Grab()
- {
- //A电机反转,抓取物体
- OnFwd(OUT_A,75);
- Wait(500);
- //停止A电机
- Off(OUT_A);
- }
- sub Arm_Release()
- {
- //A电机正转,放下物体
- OnFwd(OUT_A,-75);
- Wait(500);
- //停止A电机
- Off(OUT_A);
- }
- //原结构中增加了一个接在3号端口的触碰传感器来控制抓手的打开及闭合
- task Arm_Act()
- {
- int Status=0; //打开状态
- while(true)
- {
- //压下触碰传感器
- while(SENSOR_3==1)
- {
- if (Status==0)
- {
- Arm_Grab();
- Status=1;
- }
- else
- {
- Arm_Release();
- Status=0;
- }
- }
- }
- }
- task Arm_Move()
- {
- while(true)
- {
- ClearScreen();
- TextOut(30,29,"Rotate");
- TextOut(4,0,"Left");
- TextOut(68,0,"Right");
- while(!ButtonPressed(BTNCENTER))
- {
- if (ButtonPressed(BTNLEFT))
- {
- OnFwd(OUT_C,+75);
- }
- else
- {
- if (ButtonPressed(BTNRIGHT))
- {
- OnFwd(OUT_C,-75);
- }
- else
- Off(OUT_C);
- }
- }
- ClearScreen();
- TextOut(36,26,"Lift");
- TextOut(4,0,"Down");
- TextOut(85,0,"Up");
- while(!ButtonPressed(BTNCENTER))
- {
- if (ButtonPressed(BTNLEFT))
- {
- OnFwd(OUT_B,-75);
- }
- else
- {
- if (ButtonPressed(BTNRIGHT))
- {
- OnFwd(OUT_B,+75);
- }
- else
- Off(OUT_B);
- }
- }
- }
- }
- task main()
- {
- SetSensorTouch(S3);
- Precedes(Arm_Act,Arm_Move);
- }
复制代码 |
|