📄 kongwen120.c
字号:
{
clr_datarx();
return 0; //error //如果没有“,”,则返回,数组清零
}
lookresult=lookresult+2;
lookresult=trim(lookresult);
strmid(lookresult,0,lookresult1-lookresult);
robot1.res1b=atoff(array);
robot2.res1b=robot1.res1b;
}
lookresult=strstr1(data_rx,"sa"); //开始查找sa参数,
if(lookresult==0)
{
robot1.samples=robot2.samples; //如果没有则采用上一次设定结果
}
else
{
lookresult1=strstr1(lookresult,",");
if (lookresult1==0)
{
clr_datarx();
return 0; //error //如果没有“,”,则返回,数组清零
}
lookresult=lookresult+2;
lookresult=trim(lookresult);
strmid(lookresult,0,lookresult1-lookresult);
robot1.samples=atoff(array);
robot2.samples=robot1.samples;
}
lookresult=strstr1(data_rx,"t0"); //开始查找t0参数,
if(lookresult==0)
{
robot1.set_tem0=robot2.set_tem0; //如果没有则采用上一次设定结果
}
else
{
lookresult1=strstr1(lookresult,",");
if (lookresult1==0)
{
clr_datarx();
return 0; //error //如果没有“,”,则返回,数组清零
}
lookresult=lookresult+2;
lookresult=trim(lookresult);
strmid(lookresult,0,lookresult1-lookresult);
robot1.set_tem0=atoff(array);
robot2.set_tem0=robot1.set_tem0;
}
lookresult=strstr1(data_rx,"t1"); //开始查找t1参数,
if(lookresult==0)
{
robot1.set_tem1=robot2.set_tem1; //如果没有则采用上一次设定结果
}
else
{
lookresult1=strstr1(lookresult,",");
if (lookresult1==0)
{
clr_datarx();
return 0; //error //如果没有“,”,则返回,数组清零
}
lookresult=lookresult+2;
lookresult=trim(lookresult);
strmid(lookresult,0,lookresult1-lookresult);
robot1.set_tem1=atoff(array);
robot2.set_tem1=robot1.set_tem1;
}
lookresult=strstr1(data_rx,"v0"); //开始查找v0参数,
if(lookresult==0)
{
robot1.tem_v0=robot2.tem_v0; //如果没有则采用上一次设定结果
}
else
{
lookresult1=strstr1(lookresult,",");
if (lookresult1==0)
{
clr_datarx();
return 0; //error //如果没有“,”,则返回,数组清零
}
lookresult=lookresult+2;
lookresult=trim(lookresult);
strmid(lookresult,0,lookresult1-lookresult);
robot1.tem_v0=atoff(array);
robot2.tem_v0=robot1.tem_v0;
}
lookresult=strstr1(data_rx,"v1"); //开始查找v1参数,
if(lookresult==0)
{
robot1.tem_v1=robot2.tem_v1; //如果没有则采用上一次设定结果
}
else
{
lookresult1=strstr1(lookresult,",");
if (lookresult1==0)
{
clr_datarx();
return 0; //error //如果没有“,”,则返回,数组清零
}
lookresult=lookresult+2;
lookresult=trim(lookresult);
strmid(lookresult,0,lookresult1-lookresult);
robot1.tem_v1=atoff(array);
robot2.tem_v1=robot1.tem_v1;
}
go_stop=2; //判断是否有go,stop参数,没有这两个函数中的一个则go_stop=2
lookresult=strstr1(data_rx,"go"); //开始查找go参数,
if(lookresult!=0)
{
go_stop=1; //如果有go,则标志为1,运行
}
lookresult=strstr1(data_rx,"stop"); //开始查找go参数,
if(lookresult!=0)
{
go_stop=0; //如果存在,则标志为0,停止
}
if(go_stop==1) //如果go_stop=1,执行命令,
{
switch(robot1.manner)//运行方式,=1,宏动前进;=2,宏动后退;=3,顺时针旋转;=4,逆时针旋转;=5,微动X轴;
{
T4CON = 0; //定时器4停止计数
case 1: //0 channel test
{
set_v_out(robot1.v_out,0);
clr_datarx();
T4CON |= 0x04;
}
break;
case 2:
{
set_v_out(robot1.v_out,1); //1 channel test
clr_datarx();
T4CON |= 0x04;
}
break;
case 3:
{
repeat_value=1; //test res
clr_datarx();
T4CON |= 0x04; // 启动定时器4
}
break;
case 4:
{
repeat_value=3; //control tem
clr_datarx();
T4CON |= 0x04; // 启动定时器4
}
break;
case 5: //
{
regulator_v=get_regulator_v(1);
data_tx="regulator_v ";
Tdata(data_tx);
Tdata(mysprint(regulator_v,3));
Tdatar(13);
Tdatar(10);
clr_datarx();
T4CON |= 0x04; // 启动定时器4
}
break;
case 6: //=6,微动X轴反向;
{
regulator_v=get_regulator_v(3);
data_tx="regulator_v ";
Tdata(data_tx);
Tdata(mysprint(regulator_v,3));
Tdatar(13);
Tdatar(10);
clr_datarx();
T4CON |= 0x04; // 启动定时器4
}
break;
case 7: //=7,微动Y轴正向;
{
data_tx="regulator_v ";
Tdata(data_tx);
Tdata(mysprint(regulator_v,3));
Tdatar(13);
Tdatar(10);
clr_datarx();
T4CON |= 0x04; // 启动定时器4
}
break;
case 8: //write data to eerom
{
char i=0;
unsigned char qw_h=0;
for(i=2;i<31;i++)
{
FLASH_PageErase(i,1);
}
eerom[0]=robot2.speed_left/256;
eerom[1]=robot2.speed_left%256;
eerom[2]=robot2.speed_right/256;
eerom[3]=robot2.speed_right%256;
eerom[4]=robot2.speed_rotate/256;
eerom[5]=robot2.speed_rotate%256;
eerom[6]=robot2.robot_position/256;
eerom[7]=robot2.robot_position%256;
eerom[8]=robot2.delay_value/256;
eerom[9]=robot2.delay_value%256;
eerom[10]=robot2.res0k/256;
eerom[11]=robot2.res0k%256;
eerom[12]=robot2.res0b/256;
eerom[13]=robot2.res0b%256;
eerom[14]=robot2.res1k/256;
eerom[15]=robot2.res1k%256;
eerom[16]=robot2.res1b/256;
eerom[17]=robot2.res1b%256;
eerom[18]=robot2.samples/256;
eerom[19]=robot2.samples%256;
eerom[20]=robot2.set_tem0/256;
eerom[21]=robot2.set_tem0%256;
eerom[22]=robot2.set_tem1/256;
eerom[23]=robot2.set_tem1%256;
eerom[24]=robot2.tem_v0/256;
eerom[25]=robot2.tem_v0%256;
eerom[26]=robot2.tem_v1/256;
eerom[27]=robot2.tem_v1%256;
eerom[28]=robot2.base_value;
for(i=2;i<31;i++)
{
FLASH_ByteWrite(i,eerom[i-2],1);
}
data_tx="已经存储,请看是否正确";
Tdata(data_tx);
Tdatar(13);
Tdatar(10);
clr_datarx();
T4CON |= 0x04; // 启动定时器4
}
break;
case 9: // read data from eerom
{
char i=0;
unsigned char qw_h=0;
read_eerom();
data_tx="参数列表";
Tdata(data_tx);
Tdatar(13);
Tdatar(10);
data_tx="sl ";
Tdata(data_tx);
Tdata(mysprint(robot2.speed_left,0));
data_tx=",";
Tdata(data_tx);
data_tx="sr ";
Tdata(data_tx);
Tdata(mysprint(robot2.speed_right,0));
data_tx=",";
Tdata(data_tx);
data_tx="so ";
Tdata(data_tx);
Tdata(mysprint(robot2.speed_rotate,0));
data_tx=",";
Tdata(data_tx);
data_tx="sp ";
Tdata(data_tx);
Tdata(mysprint(robot2.robot_position,0));
data_tx=",";
Tdata(data_tx);
Tdatar(13);
Tdatar(10);
data_tx="dt ";
Tdata(data_tx);
Tdata(mysprint(robot2.delay_value,0));
data_tx=",";
Tdata(data_tx);
data_tx="k0 ";
Tdata(data_tx);
Tdata(mysprint(robot2.res0k,0));
data_tx=",";
Tdata(data_tx);
data_tx="b0 ";
Tdata(data_tx);
Tdata(mysprint(robot2.res0b,0));
data_tx=",";
Tdata(data_tx);
data_tx="k1 ";
Tdata(data_tx);
Tdata(mysprint(robot2.res1k,0));
data_tx=",";
Tdata(data_tx);
data_tx="b1 ";
Tdata(data_tx);
Tdata(mysprint(robot2.res1b,0));
data_tx=",";
Tdata(data_tx);
Tdatar(13);
Tdatar(10);
data_tx="sa ";
Tdata(data_tx);
Tdata(mysprint(robot2.samples,0));
data_tx=",";
Tdata(data_tx);
data_tx="t0 ";
Tdata(data_tx);
Tdata(mysprint(robot2.set_tem0,0));
data_tx=",";
Tdata(data_tx);
data_tx="t1 ";
Tdata(data_tx);
Tdata(mysprint(robot2.set_tem1,0));
data_tx=",";
Tdata(data_tx);
data_tx="v0 ";
Tdata(data_tx);
Tdata(mysprint(robot2.tem_v0,0));
data_tx=",";
Tdata(data_tx);
data_tx="v1 ";
Tdata(data_tx);
Tdata(mysprint(robot2.tem_v1,0));
data_tx=",";
Tdata(data_tx);
Tdatar(13);
Tdatar(10);
clr_datarx();
T4CON |= 0x04; // 启动定时器4
}
break;
case 10: //
{
test_value_set=(unsigned long)robot1.speed_rotate*robot1.robot_position;
}
break;
case 11: //=11,球下俯;
{
em0=0;
clr_datarx();
return 0;
}
break;
case 12: //=12,球上仰
{
em0=1;
clr_datarx();
return 0;
}
break;
case 13: //=13,二极管亮;
{
data_tx="ledon";
Tdata(data_tx);
Tdatar(13);
Tdatar(10);
Tdata(mysprint(robot1.manner,0));
Tdatar(13);
Tdatar(10);
Tdata(mysprint(robot1.speed_left,0));
Tdatar(13);
Tdatar(10);
Tdata(mysprint(robot1.speed_right,0));
Tdatar(13);
Tdatar(10);
Tdata(mysprint(robot1.speed_rotate,0));
Tdatar(13);
Tdatar(10);
Tdata(mysprint(robot1.robot_position,0));
Tdatar(13);
Tdatar(10);
Tdata(mysprint(robot1.base_value,0));
Tdatar(13);
Tdatar(10);
Tdata(mysprint(robot1.delay_value,0));
Tdatar(13);
Tdatar(10);
clr_datarx();
}
break;
case 14: //=12,球上仰
{
repeat_value=4;
tem_v_out0=3700-((int)robot1.set_tem0-126)*100/15;
tem_v_out1=3700-((int)robot1.set_tem1-126)*100/15;
clr_datarx();
T4CON |= 0x04; // 启动定时器4
return 0;
}
break;
case 15: //=12,球上仰
{
repeat_value=5;
clr_datarx();
return 0;
}
break;
default:
{
clr_datarx();
return 0; //如果manner参数不是预先定义字符,直接返回
}
}
}
else //如果go_stop=0或者2,不执行命令,直接返回
{
T4CON = 0; //定时器4停止计数
repeat_value=0;
clr_datarx();
return 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -