极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15556|回复: 5

程序看不出问题,但进不去循环,求指点。

[复制链接]
发表于 2017-7-22 09:12:10 | 显示全部楼层 |阅读模式
这是用xbee控制舵机的程序,楼主看了很久觉得没有问题,但始终执行不了,进不去循环,求指点。
#include <Arduino.h>
#include <OpenContinMotor.h>
#include <string.h>
#include"OpenXBee.h"
#define servoleft 6
#define servoright 7
int val=100;
unsigned long pulse1;
unsigned long pulse2;
int main(void)
{

    Serial.begin(9600);
        ContinMotor::InitContinMotorPin(servoleft);
        ContinMotor::InitContinMotorPin(servoright);

while(1)
   {
          if(Serial.available()>0)
                        {
                        val=Serial.read();
                        Serial.flush();
                        }
               switch(val)
                                {
                                case 100:
                                        {
                                                pulse1=1300;
                                                pulse2=1700;
                                                /*ContinMotor:ulseOut(servoleft,1300);
                                                ContinMotor:ulseOut(servoright,1700);
                                        Serial.print(222);
                                        delay(20);*/
                                        break;
                                        }
                                case 200:
                                    {
                                            pulse1=1700;
                                            pulse2=1300;

                                            /*ContinMotor:ulseOut(servoleft,1700);
                                            ContinMotor:ulseOut(servoright,1700);
                                    delay(20);*/      break;
                                    }
                                case 300:
                                    {
                                            pulse1=1300;
                                            pulse2=1300;

                                            /*ContinMotor:ulseOut(servoleft,1300);
                                            ContinMotor:ulseOut(servoright,1300);
                                    delay(20);*/      break;
                                    }
                                case 400:
                            {
                                pulse1=1700;
                                pulse2=1700;

                                    /*ContinMotor:ulseOut(servoleft,1700);
                                        ContinMotor:ulseOut(servoright,1300);
                            delay(20);*/     break;
                            }
                }
               ContinMotor:ulseOut(servoleft,pulse1);
               ContinMotor:ulseOut(servoright,pulse2);
               delay(20);
return(0);
   }
}
回复

使用道具 举报

发表于 2017-7-22 09:48:44 | 显示全部楼层
ContinMotor:ulseOut(servoleft,pulse1);
ContinMotor:ulseOut(servoright,pulse2);
最终要实现的是这俩个方法。

你把获取的参数,retun(0);那是不是等于白做了?
回复 支持 反对

使用道具 举报

发表于 2017-7-22 12:56:27 | 显示全部楼层
去掉最后的“return(0);”就循环了。
调试程序没有单步跟踪吗?
回复 支持 反对

使用道具 举报

发表于 2017-7-22 13:13:35 | 显示全部楼层
return(0)就是跳出循环,抓急
回复 支持 反对

使用道具 举报

发表于 2017-7-22 19:28:44 来自手机 | 显示全部楼层
Loop ()在哪里?
回复 支持 反对

使用道具 举报

发表于 2017-7-22 22:19:38 | 显示全部楼层
Arduino不是
void setup() {}
void loop() {}
格式吗
怎么成int main(void)
{
while(1)
   {
   }
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 06:55 , Processed in 0.079498 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表