📄 fouraxis.c
字号:
{
if((input_dig_num==14)&&(repeat_flag==1))
input_dig_num++;
read_buff[input_dig_num+3]=0x0D;
read_buff[input_dig_num+4]='\0';
teaching_flag=0;
}
k=y1_position_0+position_num*20;
external_EEPROM_write(0,k,read_buff);
transmit1_cmd("405on\r");
}
}
else if(screen_flag==0x42)
{
if(position_flag==1)
{
if(xyz_axis_flag==0)
{
if((input_dig_num==14)&&(repeat_flag==1))
input_dig_num++;
read_buff[input_dig_num+3]=0x0D;
read_buff[input_dig_num+4]='\0';
teaching_flag=0;
}
k=y2_position_0+position_num*20;
external_EEPROM_write(0,k,read_buff);
transmit1_cmd("405on\r");
}
}
input_initial=0;
input_dig_num=0;
repeat_flag=0;
}
}
void transferhex_to_ascii(long temp_position)
{
unsigned char i,j,temp,buff[25];
long k;
k=temp_position;
for(j=1;j<10&&k!=0;j++) //temp_position max value 134217727
{
temp=k%10;
k=k/10;
buff[j]=temp+0x30;
}
for(i=3,j=j-1;j>=1;j--,i++)
{
read_buff[i]=buff[j];
}
read_buff[i]=0x0D;
read_buff[i+1]='\0';
read_buff[0]=0x34;
read_buff[1]=0x30;
read_buff[2]=0x35;
}
long transferascii_to_hex(unsigned char data[25])
{
long temp_data;
unsigned char i;
temp_data=0;
for(i=3;data[i]!=0x0D;i++)
{
if(i==21)
{
temp_data=0;
break;
}
temp_data=temp_data*10+(data[i]-0x30);
}
if(data[i+1]!='\0') temp_data=0;
return temp_data;
}
long transferascii_position(unsigned char block_number,unsigned short EEPROM_adrr)
{
long temp_data;
unsigned short i;
if(block_number==0) //block 0
PE2_CLEAR();
else if(block_number==1) //block 1
PE2_SET();
temp_data=0;
for(i=EEPROM_adrr;ESTORAGE[i]!=0x0D;i++)
{
if(i==EEPROM_adrr+18)
{
temp_data=0;
break;
}
temp_data=temp_data*10+(ESTORAGE[i]-0x30);
}
if(ESTORAGE[i+1]!='\0') temp_data=0;
return temp_data;
}
unsigned long transferascii_speed(unsigned char block_number,unsigned short EEPROM_adrr)
{
unsigned long temp_data;
unsigned short i;
if(block_number==0) //block 0
PE2_CLEAR();
else if(block_number==1) //block 1
PE2_SET();
temp_data=0;
for(i=EEPROM_adrr;ESTORAGE[i]!=0x0D;i++)
{
if(i==EEPROM_adrr+18)
{
temp_data=0;
break;
}
temp_data=temp_data*10+(ESTORAGE[i]-0x30);
}
if(ESTORAGE[i+1]!='\0') temp_data=0;
return temp_data;
}
void clear_save_buff(void)
{
unsigned char i;
for(i=0;i<4;i++)
{
save_buff[i]=0x0D;
}
}
void shift_key(void)
{
if((save_buff[0]==0)&&(save_buff[1]==0)&&(save_buff[2]==0x08))
{
shift_flag=~shift_flag;
clear_save_buff();
if(shift_flag==0xFF)
{
transmit1_cmd("119U\r");
transmit1_cmd("119on\r");
}
if(shift_flag==0X00)
{
transmit1_cmd("119 \r");
transmit1_cmd("119off\r");
}
}
}
unsigned char key_vaule(void)
{
unsigned char temp;
if((save_buff[0]==0x80)&&(save_buff[1]==0)&&(save_buff[2]==0))
{
clear_save_buff();
if(shift_flag==0)
return (0x2E);
else return (QN);
}
else if((save_buff[0]==0x40)&&(save_buff[1]==0)&&(save_buff[2]==0))
{
clear_save_buff();
if(shift_flag==0)
return (0x33);
else return (ZN);
}
else if((save_buff[0]==0x20)&&(save_buff[1]==0)&&(save_buff[2]==0))
{
clear_save_buff();
if(shift_flag==0)
return (0x32);
else return (YN);
}
else if((save_buff[0]==0x10)&&(save_buff[1]==0)&&(save_buff[2]==0))
{
clear_save_buff();
if(shift_flag==0)
return (0x34);
else return (XP);
}
else if((save_buff[0]==0x08)&&(save_buff[1]==0)&&(save_buff[2]==0))
{
clear_save_buff();
if(shift_flag==0)
return (0x31);
else return (XN);
}
else if((save_buff[0]==0x04)&&(save_buff[1]==0)&&(save_buff[2]==0))
{
clear_save_buff();
if(shift_flag==0)
return (ENT);
else return (ENT);
}
else if((save_buff[0]==0x02)&&(save_buff[1]==0)&&(save_buff[2]==0))
{
clear_save_buff();
if(shift_flag==0)
return (0x2C);
else return (0x2C);
}
else if((save_buff[0]==0x01)&&(save_buff[1]==0)&&(save_buff[2]==0))
{
clear_save_buff();
if(shift_flag==0)
return (0x30);
else return (SLOW);
}
else if((save_buff[0]==0)&&(save_buff[1]==0x80)&&(save_buff[2]==0))
{
clear_save_buff();
if(shift_flag==0)
return (F1);
else return (F1);
}
else if((save_buff[0]==0)&&(save_buff[1]==0x40)&&(save_buff[2]==0))
{
clear_save_buff();
if(shift_flag==0)
return (F2);
else return (F2);
}
else if((save_buff[0]==0)&&(save_buff[1]==0x20)&&(save_buff[2]==0))
{
clear_save_buff();
if(shift_flag==0)
return (F3);
else return (F3);
}
else if((save_buff[0]==0)&&(save_buff[1]==0x10)&&(save_buff[2]==0))
{
clear_save_buff();
if(shift_flag==0)
return (F4);
else return (F4);
}
else if((save_buff[0]==0)&&(save_buff[1]==0x08)&&(save_buff[2]==0))
{
clear_save_buff();
if(shift_flag==0)
return (ESC);
else return (ESC);
}
else if((save_buff[0]==0)&&(save_buff[1]==0x04)&&(save_buff[2]==0))
{
clear_save_buff();
if(shift_flag==0)
return (0x2D);
else return (QP);
}
else if((save_buff[0]==0)&&(save_buff[1]==0x02)&&(save_buff[2]==0))
{
clear_save_buff();
if(shift_flag==0)
return (0x36);
else return (ZP);
}
else if((save_buff[0]==0)&&(save_buff[1]==0x01)&&(save_buff[2]==0))
{
clear_save_buff();
if(shift_flag==0)
return (0x35);
else return (YP);
}
else if((save_buff[0]==0)&&(save_buff[1]==0)&&(save_buff[2]==0x40))
{
clear_save_buff();
if(shift_flag==0)
return (0x49); //I ASCII character
else return (0x4C); //L ASCII character
}
else if((save_buff[0]==0)&&(save_buff[1]==0)&&(save_buff[2]==0x20))
{
clear_save_buff();
if(shift_flag==0)
return (0x4D); //M ASCII character
else return (0x52); //R ASCII character
}
else if((save_buff[0]==0)&&(save_buff[1]==0)&&(save_buff[2]==0x10))
{
clear_save_buff();
if(shift_flag==0)
return (0x47); //G ASCII character
else return (0x47);
}
else if((save_buff[0]==0)&&(save_buff[1]==0)&&(save_buff[2]==0x04))
{
clear_save_buff();
if(shift_flag==0)
return (0x37); //7 ASCII character
else return (0x37);
}
else if((save_buff[0]==0)&&(save_buff[1]==0)&&(save_buff[2]==0x02))
{
clear_save_buff();
if(shift_flag==0)
return (0x38); //8 ASCII character
else return (0x38);
}
else if((save_buff[0]==0)&&(save_buff[1]==0)&&(save_buff[2]==0x01))
{
clear_save_buff();
if(shift_flag==0)
return (0x39); //9 ASCII character
else return (0x39);
}
return (ERROR);
}
/*---------------------- main program ------------------*/
void main(void )
{
unsigned char i,j,temp;
unsigned char temp_save[4];
long RCUNT_position,temp_position;
unsigned long RCUNT_speed;
pointer11=0;
pointer12=0;
pointer0=0;
counter=0;
key_flag1=0;
shift_flag=0;
key_interrupt_flag=0;
f1_function=0;
f3_function=0;
screen_flag=0;
input_dig_num=0;
f2_function=1;
position_flag=0;
input_initial=0;
repeat_flag=0;
original_flag=0;
slow_flag=0;
xyz_axis_flag=0;
teaching_flag=0;
init_devices();
ini_lcd();
disp_string_1(0,"FMC-4001 Ver 1.0");
disp_string_2(0,"Initializing....");
setguangbiao_addr(7,1);
setguangbiao_switch('Y');
setguangbiao_addr(10,2);
setguangbiao_switch('N');
LED_SET();
Delay(100);
LED_CLEAR();
while((PIND&IFB)==0);
DSPXOTPB=0x00;
while((PIND&IFB)==0);
DSPXOTPB=0xFF; //clear output indicator
while((PIND&IFB)==0);
DSPUOTPB=0xFF;
while((PIND&IFB)==0);
DSPUOTPB=0xF0; //all axes servo on
//motion controlling parameter
dspmovingchip_initial(X);
dspmovingchip_initial(Y);
dspmovingchip_initial(Z);
dspmovingchip_initial(U);
output_ERC(X);
output_ERC(Y);
output_ERC(Z);
output_ERC(U);
reset_ERC(X);
reset_ERC(Y);
reset_ERC(Z);
reset_ERC(U);
//x axis parameter
speed_multiplication_setup(X,servo_multiplication_factor);
RCUNT_speed=500/servo_multiplication_factor;
RFLorPRFL_setup(X,2,RCUNT_speed);
RCUNT_speed=transferascii_speed(0,max_speed_x);
RCUNT_speed=RCUNT_speed/servo_multiplication_factor;
RFHorPRFH_setup(X,2,RCUNT_speed);
RCUNT_speed=500/servo_multiplication_factor;
RFA_setup(X,RCUNT_speed);
RDRorPRDR_setup(X,2,200);
RURorPRUR_setup(X,2,200);
//y axis parameter
speed_multiplication_setup(Y,step_multiplication_factor);
RCUNT_speed=100/step_multiplication_factor;
RFLorPRFL_setup(Y,2,RCUNT_speed);
RCUNT_speed=transferascii_speed(0,max_speed_y1);
RCUNT_speed=RCUNT_speed/step_multiplication_factor;
RFHorPRFH_setup(Y,2,RCUNT_speed);
RCUNT_speed=100/step_multiplication_factor;
RFA_setup(Y,RCUNT_speed);
RDRorPRDR_setup(Y,2,180);
RURorPRUR_setup(Y,2,180);
//z axis parameter
speed_multiplication_setup(Z,step_multiplication_factor);
RCUNT_speed=100/step_multiplication_factor;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -