📄 fouraxis.c
字号:
else if(teaching_flag==0)
{
RCUNT_position=transferascii_to_hex(read_buff);
temp_position=read_RCUNT1(Y);
RCUNT_position=RCUNT_position-temp_position;
in_positioning(STAUD,Y,2,RCUNT_position);
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFD;//set busy flag
while((PINE&BSYy)==0);
teaching_flag=1;
}
}
break;
case XP:disp_string_1(0,"XP");
transmit2_cmd(temp_save);
if((f2_function==0)&&((PINE&BSYX)!=0)&&(screen_flag==0x22)&&(position_flag==1))
{
if(teaching_flag!=0)
{
if(slow_flag!=0)
{
temp_position=500L;
in_positioning(STAUD,X,2,temp_position);
}
else if(slow_flag==0)
{
temp_position=5L;
in_positioning(STAUD,X,2,temp_position);
}
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFE;//set busy flag
while((PINE&BSYX)==0);
temp_position=read_RCUNT1(X);
transferhex_to_ascii(temp_position);
transmit1_cmd("400DATA: \r");
transmit1_cmd(read_buff);
input_initial=1;
xyz_axis_flag=1;
}
else if(teaching_flag==0)
{
RCUNT_position=transferascii_to_hex(read_buff);
temp_position=read_RCUNT1(X);
RCUNT_position=RCUNT_position-temp_position;
in_positioning(STAUD,X,2,RCUNT_position);
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFE;//set busy flag
while((PINE&BSYX)==0);
teaching_flag=1;
}
}
break;
case XN:disp_string_1(0,"XN");
transmit2_cmd(temp_save);
if((f2_function==0)&&((PINE&BSYX)!=0)&&(screen_flag==0x22)&&(position_flag==1))
{
if(teaching_flag!=0)
{
if(slow_flag!=0)
{
temp_position=-500L;
in_positioning(STAUD,X,2,temp_position);
}
else if(slow_flag==0)
{
temp_position=-5L;
in_positioning(STAUD,X,2,temp_position);
}
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFE;//set busy flag
while((PINE&BSYX)==0);
temp_position=read_RCUNT1(X);
transferhex_to_ascii(temp_position);
transmit1_cmd("400DATA: \r");
transmit1_cmd(read_buff);
input_initial=1;
xyz_axis_flag=1;
}
else if(teaching_flag==0)
{
RCUNT_position=transferascii_to_hex(read_buff);
temp_position=read_RCUNT1(X);
RCUNT_position=RCUNT_position-temp_position;
in_positioning(STAUD,X,2,RCUNT_position);
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFE;//set busy flag
while((PINE&BSYX)==0);
teaching_flag=1;
}
}
break;
case ENT:if(f2_function==0)
{
save_parameter_data();
}
break;
case SLOW:disp_string_1(0,"SLOW");
transmit2_cmd(temp_save);
slow_flag=~slow_flag;
if(slow_flag==0xFF)
{
transmit1_cmd("119L\r");
transmit1_cmd("119on\r");
}
if(slow_flag==0X00)
{
transmit1_cmd("119 \r");
transmit1_cmd("119off\r");
}
break;
case ESC: f1_function=0;
f2_function=1;
f3_function=0;
transmit1_cmd("100AUTO TRIM MACHINE \r");
transmit1_cmd("200 \r");
transmit1_cmd("300COLIBRI AUTOMATIION \r");
transmit1_cmd("400 WELCOME YOU! \r");
transmit1_cmd("100off\r");
break;
case QP:disp_string_1(0,"QP");
transmit2_cmd(temp_save);
original_return1(U,2,1);
temp_position=read_RCUNT1(U);//@@@
RCUNT_position=read_RCUNT2(U);//@@@
CLRU_CLEAR();//@@@
CLRU_SET();//@@@
temp_position=read_RCUNT1(U);//@@@
RCUNT_position=read_RCUNT2(U);//@@@
in_positioning(STAUD,U,2,40000L);
temp_position=read_RCUNT1(U);//@@@
RCUNT_position=read_RCUNT2(U);//@@@
while((PINE&BSYU)==0);
break;
case ZP:disp_string_1(0,"ZP");
transmit2_cmd(temp_save);
if((f2_function==0)&&((PINE&BSYZ)!=0)&&(screen_flag==0x42)&&(position_flag==1))
{
if(teaching_flag!=0)
{
if(slow_flag!=0)
{
temp_position=320L;
in_positioning(STAUD,Z,2,temp_position);
}
else if(slow_flag==0)
{
temp_position=3L;
in_positioning(STAUD,Z,2,temp_position);
}
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFB;//set busy flag
while((PINE&BSYZ)==0);
temp_position=read_RCUNT1(Z);
transferhex_to_ascii(temp_position);
transmit1_cmd("400DATA: \r");
transmit1_cmd(read_buff);
input_initial=1;
xyz_axis_flag=1;
}
else if(teaching_flag==0)
{
RCUNT_position=transferascii_to_hex(read_buff);
temp_position=read_RCUNT1(Z);
RCUNT_position=RCUNT_position-temp_position;
in_positioning(STAUD,Z,2,RCUNT_position);
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFB;//set busy flag
while((PINE&BSYZ)==0);
teaching_flag=1;
}
}
break;
case YP:disp_string_1(0,"YP");
transmit2_cmd(temp_save);
if((f2_function==0)&&((PINE&BSYy)!=0)&&(screen_flag==0x32)&&(position_flag==1))
{
if(teaching_flag!=0)
{
if(slow_flag!=0)
{
temp_position=320L;
in_positioning(STAUD,Y,2,temp_position);
}
else if(slow_flag==0)
{
temp_position=3L;
in_positioning(STAUD,Y,2,temp_position);
}
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFD;//set busy flag
while((PINE&BSYy)==0);
temp_position=read_RCUNT1(Y);
transferhex_to_ascii(temp_position);
transmit1_cmd("400DATA: \r");
transmit1_cmd(read_buff);
input_initial=1;
xyz_axis_flag=1;
}
else if(teaching_flag==0)
{
RCUNT_position=transferascii_to_hex(read_buff);
temp_position=read_RCUNT1(Y);
RCUNT_position=RCUNT_position-temp_position;
in_positioning(STAUD,Y,2,RCUNT_position);
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFD;//set busy flag
while((PINE&BSYy)==0);
teaching_flag=1;
}
}
break;
default:disp_string_1(0,"default");
transmit2_cmd(temp_save);
break;
}
}
}
while((DSPYIOPB&0x80)==0x00)
{
Delay(10);
if((DSPYIOPB&0x80)!=0x00) break;
key_interrupt_flag=1;
switch(~DSPYIOPB&0x70)
{
case 0x10: //x axis
temp=~DSPYIOPB&0x0F;
if(temp==0)
{
if((DSPXIOPB&0x01)==0x01)
{
RCUNT_speed=X_home_speed/servo_multiplication_factor;
RFHorPRFH_setup(X,2,RCUNT_speed);
original_return1(X,2,1);
original_flag=original_flag|0x01;
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFE;//set busy flag
RCUNT_speed=transferascii_speed(0,max_speed_x);
RCUNT_speed=RCUNT_speed/servo_multiplication_factor;
RFHorPRFH_setup(X,2,RCUNT_speed);
}
}
else if((temp>=1)&&(temp<=15))
{
k=x_position_0+temp*20;
if((DSPXIOPB&0x01)==0x01)
{
RCUNT_position=transferascii_position(0,k);
temp_position=read_RCUNT1(X);
RCUNT_position=RCUNT_position-temp_position;
in_positioning(STAUD,X,2,RCUNT_position);
temp_position=read_RCUNT1(X);//@@@@@
RCUNT_position=read_RCUNT2(X);//@@@@@
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFE;//set busy flag
}
}
break;
case 0x20: //y1 axis
temp=~DSPYIOPB&0x0F;
if(temp==0)
{
if((DSPXIOPB&0x02)==0x02)
{
RCUNT_speed=Y1_home_speed/step_multiplication_factor;
RFHorPRFH_setup(Y,2,RCUNT_speed);
original_return1(Y,2,1);
original_flag=original_flag|0x02;
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFD;//set busy flag
RCUNT_speed=transferascii_speed(0,max_speed_y1);
RCUNT_speed=RCUNT_speed/step_multiplication_factor;
RFHorPRFH_setup(Y,2,RCUNT_speed);
}
}
else if((temp>=1)&&(temp<=15))
{
k=y1_position_0+temp*20;
if((DSPXIOPB&0x02)==0x02)
{
RCUNT_position=transferascii_position(0,k);
temp_position=read_RCUNT1(Y);
RCUNT_position=RCUNT_position-temp_position;
in_positioning(STAUD,Y,2,RCUNT_position);
temp_position=read_RCUNT1(Y);//@@@@@
RCUNT_position=read_RCUNT2(Y);//@@@@@
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFD;//set busy flag
}
}
break;
case 0x40: //y2 axis
temp=~DSPYIOPB&0x0F;
if(temp==0)
{
if((DSPXIOPB&0x04)==0x04)
{
RCUNT_speed=Y2_home_speed/step_multiplication_factor;
RFHorPRFH_setup(Z,2,RCUNT_speed);
original_return1(Z,2,1);
original_flag=original_flag|0x04;
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFB;//set busy flag
RCUNT_speed=transferascii_speed(0,max_speed_y2);
RCUNT_speed=RCUNT_speed/step_multiplication_factor;
RFHorPRFH_setup(Z,2,RCUNT_speed);
}
}
else if((temp>=1)&&(temp<=15))
{
k=y2_position_0+temp*20;
if((DSPXIOPB&0x04)==0x04)
{
RCUNT_position=transferascii_position(0,k);
temp_position=read_RCUNT1(Z);
RCUNT_position=RCUNT_position-temp_position;
in_positioning(STAUD,Z,2,RCUNT_position);
temp_position=read_RCUNT1(Z);//@@@@@
RCUNT_position=read_RCUNT2(Z);//@@@@@
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFB;//set busy flag
}
}
break;
case 0x30: //x axis and y1 axis
break;
case 0x50: //x axis and y2 axis
break;
case 0x60: //y1 axis and y2 axis
temp=~DSPYIOPB&0x0F;
if(temp==0)
{
if((DSPXIOPB&0x02)==0x02)
{
RCUNT_speed=Y1_home_speed/step_multiplication_factor;
RFHorPRFH_setup(Y,2,RCUNT_speed);
original_return1(Y,2,1);
original_flag=original_flag|0x02;
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFD;//set busy flag
RCUNT_speed=transferascii_speed(0,max_speed_y1);
RCUNT_speed=RCUNT_speed/step_multiplication_factor;
RFHorPRFH_setup(Y,2,RCUNT_speed);
}
if((DSPXIOPB&0x04)==0x04)
{
RCUNT_speed=Y2_home_speed/step_multiplication_factor;
RFHorPRFH_setup(Z,2,RCUNT_speed);
original_return1(Z,2,1);
original_flag=original_flag|0x04;
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFB;//set busy flag
RCUNT_speed=transferascii_speed(0,max_speed_y2);
RCUNT_speed=RCUNT_speed/step_multiplication_factor;
RFHorPRFH_setup(Z,2,RCUNT_speed);
}
}
else if((temp>=1)&&(temp<=15))
{
k=y1_position_0+temp*20;
if((DSPXIOPB&0x02)==0x02)
{
RCUNT_position=transferascii_position(0,k);
temp_position=read_RCUNT1(Y);
RCUNT_position=RCUNT_position-temp_position;
in_positioning(STAUD,Y,2,RCUNT_position);
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFD;//set busy flag
}
k=y2_position_0+temp*20;
if((DSPXIOPB&0x04)==0x04)
{
RCUNT_position=transferascii_position(0,k);
temp_position=read_RCUNT1(Z);
RCUNT_position=RCUNT_position-temp_position;
in_positioning(STAUD,Z,2,RCUNT_position);
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFB;//set busy flag
}
}
break;
case 0x70: //x axis, y1 axis and y2 axis
switch(~DSPYIOPB&0x0F)
{
case 0x00: //home
if((DSPXIOPB&0x01)==0x01)
{
RCUNT_speed=X_home_speed/servo_multiplication_factor;
RFHorPRFH_setup(X,2,RCUNT_speed);
original_return1(X,2,1);
original_flag=original_flag|0x01;
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFE;//set busy flag
RCUNT_speed=transferascii_speed(0,max_speed_x);
RCUNT_speed=RCUNT_speed/servo_multiplication_factor;
RFHorPRFH_setup(X,2,RCUNT_speed);
}
if((DSPXIOPB&0x02)==0x02)
{
RCUNT_speed=Y1_home_speed/step_multiplication_factor;
RFHorPRFH_setup(Y,2,RCUNT_speed);
original_return1(Y,2,1);
original_flag=original_flag|0x02;
while((PIND&IFB)==0);
DSPXOTPB=DSPXIOPB&0xFD;//set busy flag
RCUNT_speed=transferascii_speed(0,max_speed_y1);
RCUNT_speed=RCUNT_speed/step_multiplication_factor;
RFHorPRFH_setup(Y,2,RCUNT_speed);
}
if((DSPXIOPB&0x04)==0x04)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -