/****************XY電機后移*******************/
//uint XMtPParameter; //X電機位置參數(上料動作)
//uint YMtSParameter; //Y電機編輯前移
void XYMTBack()
{
uchar ss; //延時系數
uint XYSpeed,XYPosition; //電機延時參數 Y電機運動位置參數
bit Start; //起步標志
ss=20; //延時系數初始化
XYSpeed=XMtSParameter; //速度
XYPosition=XMtPParameter; //位置 XMtPParameter第一步到位置X軸加
DIR1=1; //左移
DIR2=0; //后退
Start=1; //起步標志置一
do
{
if(Start==1) // 起步
{
CP1=!CP1; //輸出脈沖
CP2=!CP2; //輸出脈沖
delay(XYSpeed+ss*5);//20×5..19*5...1*5
CP1=!CP1; //輸出脈沖
CP2=!CP2; //輸出脈沖
delay(XYSpeed+ss*5);
XYPosition--;
ss--;
if(ss<1) //小于1加速段完成
{
ss=0;
Start=0; //加速標志置零,結束加速
} // ss=20循環結束,執行else循環體
}
else
{
CP1=!CP1; //輸出脈沖
CP2=!CP2; //輸出脈沖
delay(XYSpeed+ss*5);//XYPosition大于20ss=0
CP1=!CP1; //輸出脈沖
CP2=!CP2; //輸出脈沖
delay(XYSpeed+ss*5);
XYPosition--;
if(XYPosition<20) //小于20啟動減速
ss++; //減速延時加 1*5..2*5..3*5
}
}
while(XYPosition);
}
|