📄 main.c
字号:
// else if(hPresetPosition==hAbsolutionPosition) TR2=0;
else
{
if((hAbsolutionPosition-hPresetPosition)<2000)
hOrientFlag=-1;
else
hOrientFlag=1;
}
}
//
switch(hOrientFlag)
{
default:break;
case 1:
{
switch(haccDecFlag)
{
default :break;
case PAUSE:
if(!(hPauseTime--))
{
haccDecFlag=ACCELERATION;
if(hAbsolutionPosition==hPresetPosition1)
hPresetPosition=hPresetPosition2;
else
hPresetPosition=hPresetPosition1;
hOrientFlag=0;
}
break;
case DECELERATION:
if(currentCount==15)
currentCount=0;
else
++currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==3999)
hAbsolutionPosition=0;
else
++hAbsolutionPosition;
if(accDecCount==15)
{
RCAPT2=DECTABLE[accDecCount];
accDecCount=0;
haccDecFlag=PAUSE;
hPauseTime=200;
HMotorOut(SIN16[currentCount]) ;
}
else
{
RCAPT2=DECTABLE[accDecCount];
++accDecCount;
}
// HMotorOut(SIN16[currentCount-1]) ;
break;
case ACCELERATION:
if(currentCount==15)
currentCount=0;
else
++currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==3999)
hAbsolutionPosition=0;
else
++hAbsolutionPosition;
if(accDecCount==15)
{
RCAPT2=ACCTABLE[accDecCount];
accDecCount=0;
haccDecFlag=NORMALMOTION;
hPresetPosition=hPresetPosition-16;
}
else
{
RCAPT2=ACCTABLE[accDecCount];
++accDecCount;
}
break;
case NORMALMOTION:
if(hPresetPosition!=hAbsolutionPosition)
{
if(currentCount==15)
currentCount=0;
else
++currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==3999)
hAbsolutionPosition=0;
else
++hAbsolutionPosition;
RCAPT2=-2000;
// RCAPT2=ACCDEC[accDecCount];
}
else
haccDecFlag=DECELERATION;
break;
}
break;
}
case -1:
{
switch(haccDecFlag)
{
default :break;
case PAUSE:
if(!(hPauseTime--))
{
haccDecFlag=ACCELERATION;
if(hAbsolutionPosition==hPresetPosition1)
hPresetPosition=hPresetPosition2;
else
hPresetPosition=hPresetPosition1;
hOrientFlag=0;
}
break;
case DECELERATION:
if(currentCount==0)
currentCount=15;
else
--currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==0)
hAbsolutionPosition=3999;
else
--hAbsolutionPosition;
if(accDecCount==15)
{
RCAPT2=DECTABLE[accDecCount];
accDecCount=0;
haccDecFlag=PAUSE;
hPauseTime=200;
HMotorOut(SIN16[currentCount]) ;
}
else
{
++accDecCount;
RCAPT2=DECTABLE[accDecCount];
}
// HMotorOut(SIN16[currentCount+1]) ;
break;
case ACCELERATION:
if(currentCount==0)
currentCount=15;
else
--currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==0)
hAbsolutionPosition=3999;
else
--hAbsolutionPosition;
if(accDecCount==15)
{
RCAPT2=ACCTABLE[accDecCount];
accDecCount=0;
hPresetPosition=hPresetPosition+16;
haccDecFlag=NORMALMOTION;
}
else
{
RCAPT2=ACCTABLE[accDecCount];
++accDecCount;
}
break;
case NORMALMOTION:
if(hPresetPosition!=hAbsolutionPosition)
{
if(currentCount==0)
currentCount=15;
else
--currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==0)
hAbsolutionPosition=3999;
else
--hAbsolutionPosition;
RCAPT2=-2000;
// RCAPT2=ACCDEC[accDecCount];
}
else
haccDecFlag=DECELERATION;
break;
}
break;
}
}
break;
case MULMOTION :
if(!hOrientFlag)
{
if(hPresetPosition>hAbsolutionPosition)
{
if((hPresetPosition-hAbsolutionPosition)<2000)
hOrientFlag=1;
else
hOrientFlag=-1;
}
// else if(hPresetPosition==hAbsolutionPosition) TR2=0;
else
{
if((hAbsolutionPosition-hPresetPosition)<2000)
hOrientFlag=-1;
else
hOrientFlag=1;
}
}
//
switch(hOrientFlag)
{
default:break;
case 1:
{
switch(haccDecFlag)
{
default :break;
case PAUSE:
if(!(hPauseTime--))
{
haccDecFlag=ACCELERATION;
hOrientFlag=0;
if( (hMulPointCount>=0)&&(hMulPointCount<=3))
{
hPresetPosition=HMulPoint[hMulPointCount];
hMulPointCount++;
}
else if( (hMulPointCount>=4)&&(hMulPointCount<=6))
{
hPresetPosition=HMulPoint[8-hMulPointCount];
hMulPointCount++;
}
else
{
hPresetPosition=HMulPoint[8-hMulPointCount];
hMulPointCount=0;
}
}
break;
case DECELERATION:
if(currentCount==15)
currentCount=0;
else
++currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==3999)
hAbsolutionPosition=0;
else
++hAbsolutionPosition;
if(accDecCount==15)
{
RCAPT2=DECTABLE[accDecCount];
accDecCount=0;
haccDecFlag=PAUSE;
hPauseTime=50;
HMotorOut(SIN16[currentCount]) ;
}
else
{
RCAPT2=DECTABLE[accDecCount];
++accDecCount;
}
// HMotorOut(SIN16[currentCount-1]) ;
break;
case ACCELERATION:
if(currentCount==15)
currentCount=0;
else
++currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==3999)
hAbsolutionPosition=0;
else
++hAbsolutionPosition;
if(accDecCount==15)
{
RCAPT2=ACCTABLE[accDecCount];
accDecCount=0;
haccDecFlag=NORMALMOTION;
hPresetPosition=hPresetPosition-16;
}
else
{
RCAPT2=ACCTABLE[accDecCount];
++accDecCount;
}
break;
case NORMALMOTION:
if(hPresetPosition!=hAbsolutionPosition)
{
if(currentCount==15)
currentCount=0;
else
++currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==3999)
hAbsolutionPosition=0;
else
++hAbsolutionPosition;
RCAPT2=-200;
// RCAPT2=ACCDEC[accDecCount];
}
else
haccDecFlag=DECELERATION;
break;
}
break;
}
case -1:
{
switch(haccDecFlag)
{
default :break;
case PAUSE:
if(!(hPauseTime--))
{
haccDecFlag=ACCELERATION;
hOrientFlag=0;
if( (hMulPointCount>=0)&&(hMulPointCount<=3))
{
hPresetPosition=HMulPoint[hMulPointCount];
hMulPointCount++;
}
else if( (hMulPointCount>=4)&&(hMulPointCount<=6))
{
hPresetPosition=HMulPoint[8-hMulPointCount];
hMulPointCount++;
}
else
{
hPresetPosition=HMulPoint[8-hMulPointCount];
hMulPointCount=0;
}
}
break;
case DECELERATION:
if(currentCount==0)
currentCount=15;
else
--currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==0)
hAbsolutionPosition=3999;
else
--hAbsolutionPosition;
if(accDecCount==15)
{
RCAPT2=DECTABLE[accDecCount];
accDecCount=0;
haccDecFlag=PAUSE;
hPauseTime=50;
HMotorOut(SIN16[currentCount]) ;
}
else
{
++accDecCount;
RCAPT2=DECTABLE[accDecCount];
}
// HMotorOut(SIN16[currentCount+1]) ;
break;
case ACCELERATION:
if(currentCount==0)
currentCount=15;
else
--currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==0)
hAbsolutionPosition=3999;
else
--hAbsolutionPosition;
if(accDecCount==15)
{
RCAPT2=ACCTABLE[accDecCount];
accDecCount=0;
hPresetPosition=hPresetPosition+16;
haccDecFlag=NORMALMOTION;
}
else
{
RCAPT2=ACCTABLE[accDecCount];
++accDecCount;
}
break;
case NORMALMOTION:
if(hPresetPosition!=hAbsolutionPosition)
{
if(currentCount==0)
currentCount=15;
else
--currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==0)
hAbsolutionPosition=3999;
else
--hAbsolutionPosition;
RCAPT2=-200;
// RCAPT2=ACCDEC[accDecCount];
}
else
haccDecFlag=DECELERATION;
break;
}
break;
}
}
break;
case SINGLEMOTION :
if(!hOrientFlag)
{
if(hPresetPosition>hAbsolutionPosition)
{
if((hPresetPosition-hAbsolutionPosition)<2000)
hOrientFlag=1;
else
hOrientFlag=-1;
}
else if(hPresetPosition==hAbsolutionPosition) TR2=0;
else
{
if((hAbsolutionPosition-hPresetPosition)<2000)
hOrientFlag=-1;
else
hOrientFlag=1;
}
}
//
switch(hOrientFlag)
{
default:break;
case 1:
{
switch(haccDecFlag)
{
default :break;
case DECELERATION:
if(currentCount==15)
currentCount=0;
else
++currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==3999)
hAbsolutionPosition=0;
else
++hAbsolutionPosition;
if(accDecCount==15)
{
RCAPT2=DECTABLE[accDecCount];
accDecCount=0;
TR2=0;
haccDecFlag=0;
hOrientFlag=0;
HMotorOut(SIN16[currentCount]) ;
}
else
{
RCAPT2=DECTABLE[accDecCount];
++accDecCount;
}
// HMotorOut(SIN16[currentCount-1]) ;
break;
case ACCELERATION:
if(currentCount==15)
currentCount=0;
else
++currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==3999)
hAbsolutionPosition=0;
else
++hAbsolutionPosition;
if(accDecCount==15)
{
RCAPT2=ACCTABLE[accDecCount];
accDecCount=0;
haccDecFlag=NORMALMOTION;
hPresetPosition=hPresetPosition-16;
}
else
{
RCAPT2=ACCTABLE[accDecCount];
++accDecCount;
}
break;
case NORMALMOTION:
if(hPresetPosition!=hAbsolutionPosition)
{
if(currentCount==15)
currentCount=0;
else
++currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==3999)
hAbsolutionPosition=0;
else
++hAbsolutionPosition;
RCAPT2=-2000;
// RCAPT2=ACCDEC[accDecCount];
}
else
haccDecFlag=DECELERATION;
break;
}
break;
}
case -1:
{
switch(haccDecFlag)
{
default :break;
case DECELERATION:
if(currentCount==0)
currentCount=15;
else
--currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==0)
hAbsolutionPosition=3999;
else
--hAbsolutionPosition;
if(accDecCount==15)
{
RCAPT2=DECTABLE[accDecCount];
accDecCount=0;
TR2=0;
haccDecFlag=0;
hOrientFlag=0;
HMotorOut(SIN16[currentCount]) ;
}
else
{
++accDecCount;
RCAPT2=DECTABLE[accDecCount];
}
// HMotorOut(SIN16[currentCount+1]) ;
break;
case ACCELERATION:
if(currentCount==0)
currentCount=15;
else
--currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==0)
hAbsolutionPosition=3999;
else
--hAbsolutionPosition;
if(accDecCount==15)
{
RCAPT2=ACCTABLE[accDecCount];
accDecCount=0;
hPresetPosition=hPresetPosition+16;
haccDecFlag=NORMALMOTION;
}
else
{
RCAPT2=ACCTABLE[accDecCount];
++accDecCount;
}
break;
case NORMALMOTION:
if(hPresetPosition!=hAbsolutionPosition)
{
if(currentCount==0)
currentCount=15;
else
--currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==0)
hAbsolutionPosition=3999;
else
--hAbsolutionPosition;
RCAPT2=-2000;
// RCAPT2=ACCDEC[accDecCount];
}
else
haccDecFlag=DECELERATION;
break;
}
break;
}
}
break;
case STOPROTATION :
switch(hOrientFlag)
{
default :break;
case 1:
// case DECELERATION:
if(currentCount==15)
currentCount=0;
else
++currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==3999)
hAbsolutionPosition=0;
else
++hAbsolutionPosition;
if(accDecCount==15)
{
RCAPT2=DECTABLE[accDecCount];
accDecCount=0;
TR2=0;
haccDecFlag=0;
hOrientFlag=0;
HMotorOut(SIN16[currentCount]) ;
}
else
{
RCAPT2=DECTABLE[accDecCount];
++accDecCount;
}
// HMotorOut(SIN16[currentCount-1]) ;
break;
case -1:
// case DECELERATION:
if(currentCount==0)
currentCount=15;
else
--currentCount;
HMotorOut(SIN16[currentCount]) ;
if(hAbsolutionPosition==0)
hAbsolutionPosition=3999;
else
--hAbsolutionPosition;
if(accDecCount==15)
{
RCAPT2=DECTABLE[accDecCount];
accDecCount=0;
TR2=0;
haccDecFlag=0;
hOrientFlag=0;
HMotorOut(SIN16[currentCount]) ;
}
else
{
++accDecCount;
RCAPT2=DECTABLE[accDecCount];
}
// HMotorOut(SIN16[currentCount+1]) ;
break;
}
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -