}
void StepCCW(unsigned int m, char p)//反转1.8//test ok
{
unsigned int mm = m >> 1;
switch (p)
{
case 0x1:
DIR1 = 0;
PUL1 = 0;
Delay(mm);
PUL1 = 1;
Delay(mm);
break;
case 0x2:
DIR2 = 0;
PUL2 = 0;
Delay(mm);
PUL2 = 1;
Delay(mm);
break;
case 0x3:
DIR3 = 0;
PUL3 = 0;
Delay(mm);
PUL3 = 1;
Delay(mm);
break;
}
}
void USP2P(int n, unsigned int m,char p) /////test ok
{
int i;
if (n >= 0)
for (i = 0; i < n; i++) StepCW(m,p);
else
for (i = 0; i < -n; i++) StepCCW(m,p);
}
/*void UDP2P1(unsigned int n,unsigned int n1,char p)//启动减速运行函数
{
int i;
unsigned int n01,n02,n03;
if (n < n1)for (i = 0; i < n; i++) StepCW(mStep[0],p);
else if (n < 2 * n1)
{
if (n % 2 == 0) n01 = n02 = n / 2;
else{n01 = n / 2 + 1; n02 = n / 2;}
for (i = 0; i < n01;i++)StepCW(mStep[i],p);
for (i = n02 - 1; i >= 0; i--)StepCW(mStep[i],p);
}
else
{
n03 = n - 2 * n1;
for (i = 0; i < n1; i++)StepCW(mStep[i],p);
for (i = 0; i < n03; i++)StepCW(mStep[n1-1],p);
for (i = n1-1; i >=0; i--)StepCW(mStep[i],p);
}
}
void UDP2P2(unsigned int n, unsigned int n1, char p)//启动减速运行函数
{
int i;
unsigned int n01, n02, n03;
if (n < n1)
{
for (i = 0; i < n; i++)
StepCCW(mStep[0], p);
}
else if (n < 2 * n1)
{
if (n % 2 == 0) n01 = n02 = n / 2;
else {n01 = n / 2 + 1; n02 = n / 2;}
for (i = 0; i < n01;i++) StepCCW(mStep[i], p);
for (i = n02 - 1; i >= 0; i--)StepCCW(mStep[i], p);
}
else
{
n03 = n - 2 * n1;
for (i = 0; i < n1; i++)StepCCW(mStep[i], p);
for (i = 0; i < n03; i++)StepCCW(mStep[n1 - 1], p);
for (i = n1 - 1; i >= 0; i--)StepCCW(mStep[i], p);
}
}
void XuanZhe(int n, unsigned int m, char p) /////////////正反判断函数
{
unsigned int nn = abs(n);
if (n >= 0)
UDP2P1(nn, m, p);
else
{
UDP2P2(nn, m, p);
}
}*/
void SAVE2(int n,int m) /////test ok ////////储存坐标2函数
{
int xx;
SPM[xx][0] = n;
SPM[xx][1] = m;
xx++;
if(xx>=9){xx=0;}
}
void Line1(int x,int y,int m)////左上运动
{
int N;
int i=0,F=0;
N=abs(x)+abs(y);
for(i=0;i<N;i++)
{
if(F>=0)
{
StepCW(m,0x1);
F=F-x;
}
else
{
StepCW(m,0x2);
F=F+x;
}
}
}
void Line2(int x,int y,int m)////右上运动
{
int N;
int i=0,F=0;
N=abs(x)+abs(y);
for(i=0;i<N;i++)
{
if(F<0)
{
StepCCW(m,0x1);
F=F+y;
}
else
{
StepCW(m,0x2);
F=F+x;
}
}
}
void Line3(int x,int y,int m)/////右下运动
{
int N;
int i=0,F=0;
N=abs(x)+abs(y);
for(i=0;i<N;i++)
{
if(F>0)
{
StepCCW(m,0x1);
F=F+y;
}
else
{
StepCCW(m,0x2);
F=F-x;
}
}
}
void Line4(int x,int y,int m)////左下运动
{
int N;
int i=0,F=0;
N=abs(x)+abs(y);
for(i=0;i<N;i++)
{
if(F<0)
{
StepCW(m,0x1);
F=F-y;
}
else
{
StepCCW(m,0x2);
F=F-x;
}
}
}
switch (cmdID)
{
case 0x0:
Flash(200);
ENABLETXD
break;
case 0x2:
StepCW((char)ParaLow,nodeID);
break;
case 0x3:
USP2P(500, 100, 0x1);
break;
case 0x4:
SAVE2((int)ParaLow, (int)ParaHi);
break;
case 0x5:
for(ii=0;ii<9;ii++)
{
Line(SPM[ii][0],SPM[ii][1],(int)ParaHi);
}
break;
case 0x6:
break;
case 0x80: