⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fouraxis.c

📁 四轴控制电机驱动的源程序,在编译环境中已通过
💻 C
📖 第 1 页 / 共 5 页
字号:
	RFLorPRFL_setup(Z,2,RCUNT_speed);
	RCUNT_speed=transferascii_speed(0,max_speed_y2);
	RCUNT_speed=RCUNT_speed/step_multiplication_factor;
	RFHorPRFH_setup(Z,2,RCUNT_speed);
	RCUNT_speed=100/step_multiplication_factor;
	RFA_setup(Z,RCUNT_speed);
	RDRorPRDR_setup(Z,2,180);
	RURorPRUR_setup(Z,2,180);
	
	//u axis parameter
    speed_multiplication_setup(U,step_multiplication_factor);
    RCUNT_speed=200/step_multiplication_factor;
	RFLorPRFL_setup(U,2,RCUNT_speed);
	RCUNT_speed=4000/step_multiplication_factor;
	RFHorPRFH_setup(U,2,RCUNT_speed);
	RCUNT_speed=200/step_multiplication_factor;
	RFA_setup(U,RCUNT_speed);
	RDRorPRDR_setup(U,2,250);
	RURorPRUR_setup(U,2,250);
	
	//original mode select
	//original_mode(X,0x04);
    //original_mode(Y,0x04);
	original_mode(Z,0x04);
    //original_mode(U,0x04);
	/*************************/
	/*It's only for exhibition meeting*/
	 
	disp_string_1(0,"BMC-4000 Ver 1.0");
	disp_string_2(0,"Colibri welcome!");
	
	transmit1_cmd("100AUTO TRIM MACHINE  \r");
	Delay(50);
	transmit1_cmd("200                    \r");
	Delay(50);
	transmit1_cmd("300COLIBRI AUTOMATIION \r");
	Delay(50);
	transmit1_cmd("400   WELCOME   YOU!   \r");
	Delay(50);
	          
	//inputandoutput_example_new();		  
	/*************************/
	while(1)
	{
	  while((key_flag1>0)&&(key_flag1<=1))
	   {
	        key_interrupt_flag=1;
			
		    for (i=0;i<4;i++,pointer12++)
		     {
		        save_buff[i]=rec_tab1[pointer12];
				temp_save[i]=rec_tab1[pointer12];
		     }
			if(pointer12==4) pointer12=0; 
	        key_flag1--;
			shift_key();
			temp=key_vaule();
		    if(temp!=ERROR)
			 {
			   switch (temp)
			    {
			      case F1:position_flag=0;
				          f2_function=1;      //enter main face
				          f1_function++;
				          if(f1_function==5)
						  f1_function=1;
				          switch(f1_function)
						   {
							 case(1):
							 f3_function=0;
							 transmit1_cmd("1001modify axes speed \r");
	                         Delay(50);
	                         transmit1_cmd("200X  axis:            \r");
	                         Delay(50);
                             transmit1_cmd("300Y1 axis:            \r");
	                         Delay(50);
                             transmit1_cmd("400Y2 axis:            \r");
	                         Delay(50);
							 break;
							 case(2):
							 f3_function=0;
							 transmit1_cmd("1002modify X position \r");
	                         Delay(50);
	                         transmit1_cmd("200                    \r");
	                         Delay(50);
                             transmit1_cmd("300POSITION NO:        \r");
	                         Delay(50);
                             transmit1_cmd("400DATA:               \r");
	                         Delay(50);
							 break;
							 case(3):
							 f3_function=0;
							 transmit1_cmd("1003modify Y1 position\r");
	                         Delay(50);
	                         transmit1_cmd("200                    \r");
	                         Delay(50);
                             transmit1_cmd("300POSITION NO:        \r");
	                         Delay(50);
                             transmit1_cmd("400DATA:               \r");
	                         Delay(50);
							 break;
							 case(4):
							 f3_function=0;
							 transmit1_cmd("1004modify Y2 position\r");
	                         Delay(50);
	                         transmit1_cmd("200                    \r");
	                         Delay(50);
                             transmit1_cmd("300POSITION NO:        \r");
	                         Delay(50);
                             transmit1_cmd("400DATA:               \r");
	                         Delay(50);
							 break;
							 default:
							 break;
						   }
						  transmit1_cmd("100off\r"); 
				          break;
			      case F2:position_flag=0;
				          f2_function=1;      //enter main face
				          if(f1_function!=0)
	                      f1_function--;
						  if(f1_function==0)			  
						  f1_function=4;
						  switch(f1_function)
						   {
							 case(1):
							 f3_function=0;
							 transmit1_cmd("1001modify axes speed \r");
	                         Delay(50);
	                         transmit1_cmd("200X  axis:            \r");
	                         Delay(50);
                             transmit1_cmd("300Y1 axis:            \r");
	                         Delay(50);
                             transmit1_cmd("400Y2 axis:            \r");
	                         Delay(50);
							 break;
							 case(2):
							 f3_function=0;
							 transmit1_cmd("1002modify X position \r");
	                         Delay(50);
	                         transmit1_cmd("200                    \r");
	                         Delay(50);
                             transmit1_cmd("300POSITION NO:        \r");
	                         Delay(50);
                             transmit1_cmd("400DATA:               \r");
	                         Delay(50);
							 break;
							 case(3):
							 f3_function=0;
							 transmit1_cmd("1003modify Y1 position\r");
	                         Delay(50);
	                         transmit1_cmd("200                    \r");
	                         Delay(50);
                             transmit1_cmd("300POSITION NO:        \r");
	                         Delay(50);
                             transmit1_cmd("400DATA:               \r");
	                         Delay(50);
							 break;
							 case(4):
							 f3_function=0;
							 transmit1_cmd("1004modify Y2 position\r");
	                         Delay(50);
	                         transmit1_cmd("200                    \r");
	                         Delay(50);
                             transmit1_cmd("300POSITION NO:        \r");
	                         Delay(50);
                             transmit1_cmd("400DATA:               \r");
	                         Delay(50);
							 break;
							 default:
							 break;
						   }
						  transmit1_cmd("100off\r"); 
				          break;
				  case F3:f2_function=0;      //enter sub face
				          f3_function++;
				          if(f1_function==1)
						     {
							   if(f3_function==4)  f3_function=1;
							   switch(f3_function)
						        {
							      case(1):
							      transmit1_cmd("208on\r");
								  external_EEPROM_read(0,max_speed_x,read_buff);
								  read_buff[0]=0x32;
	                              read_buff[1]=0x30;
 							      read_buff[2]=0x38;
                                  transmit1_cmd("200X  axis:            \r");
								  transmit1_cmd(read_buff);
								  transmit1_cmd("208on\r");
								  screen_flag=0x11;
								  input_dig_num=0;
								  input_initial=0;
								  repeat_flag=0;
                				  break;
							      case(2):
							      transmit1_cmd("308on\r");
								  external_EEPROM_read(0,max_speed_y1,read_buff);
								  read_buff[0]=0x33;
	                              read_buff[1]=0x30;
 							      read_buff[2]=0x38;
                                  transmit1_cmd("300Y1 axis:            \r");
								  transmit1_cmd(read_buff);
								  transmit1_cmd("308on\r");
								  screen_flag=0x12;
								  input_dig_num=0;
								  input_initial=0;
								  repeat_flag=0;
                				  break;
							      case(3):
							      transmit1_cmd("408on\r");
								  external_EEPROM_read(0,max_speed_y2,read_buff);
								  read_buff[0]=0x34;
	                              read_buff[1]=0x30;
 							      read_buff[2]=0x38;
                                  transmit1_cmd("400Y2 axis:            \r");
								  transmit1_cmd(read_buff);
								  transmit1_cmd("408on\r");
								  screen_flag=0x13;
								  input_dig_num=0;
								  input_initial=0;
								  repeat_flag=0;
                				  break;
							      default:
							      break;
							    } 
				        	 }
						  else if(f1_function==2)
						     {
							   if(f3_function==3)  f3_function=1;
							   switch(f3_function)
						        {
							      case(1):
							      transmit1_cmd("300POSITION NO:        \r");
								  transmit1_cmd("312on\r");
								  screen_flag=0x21;
								  input_dig_num=0;
								  input_initial=0;
								  position_flag=0;
								  repeat_flag=0;
							      break;
							      case(2):
							      transmit1_cmd("400DATA:               \r");
								  transmit1_cmd("405on\r");
								  if(position_flag==1)
								  {
								    k=x_position_0+position_num*20;
								    external_EEPROM_read(0,k,read_buff);
								    read_buff[0]=0x34;
	                                read_buff[1]=0x30;
 							        read_buff[2]=0x35;
                                    transmit1_cmd("400DATA:               \r");
								    transmit1_cmd(read_buff);
								    transmit1_cmd("405on\r");
								  }
								  screen_flag=0x22;
								  input_dig_num=0;
								  input_initial=0;
								  repeat_flag=0;
								  teaching_flag=0;
							      break;
							      default:
							      break;
							    } 
				             }
						  else if(f1_function==3)
						     {
							   if(f3_function==3)  f3_function=1;
							   switch(f3_function)
						        {
							      case(1):
							      transmit1_cmd("300POSITION NO:        \r");
								  transmit1_cmd("312on\r");
								  screen_flag=0x31;
								  input_dig_num=0;
								  input_initial=0;
								  position_flag=0;
								  repeat_flag=0;
							      break;
							      case(2):
							      transmit1_cmd("400DATA:               \r");
								  transmit1_cmd("405on\r");
								  if(position_flag==1)
								  {
								    k=y1_position_0+position_num*20;
								    external_EEPROM_read(0,k,read_buff);
								    read_buff[0]=0x34;
	                                read_buff[1]=0x30;
 							        read_buff[2]=0x35;
                                    transmit1_cmd("400DATA:               \r");
								    transmit1_cmd(read_buff);
								    transmit1_cmd("405on\r");
								  }
								  screen_flag=0x32;
								  input_dig_num=0;
								  input_initial=0;
								  repeat_flag=0;
								  teaching_flag=0;
							      break;
							      default:
							      break;
							    } 
							 }	 
						  else if(f1_function==4)
						     {
							   if(f3_function==3)  f3_function=1;
							   switch(f3_function)
						        {
							      case(1):
							      transmit1_cmd("300POSITION NO:        \r");
								  transmit1_cmd("312on\r");
								  screen_flag=0x41;
								  input_dig_num=0;
								  input_initial=0;
								  position_flag=0;
								  repeat_flag=0;
							      break;
							      case(2):
							      transmit1_cmd("400DATA:               \r");
								  transmit1_cmd("405on\r");
								  if(position_flag==1)
								  {
								    k=y2_position_0+position_num*20;
								    external_EEPROM_read(0,k,read_buff);
								    read_buff[0]=0x34;
	                                read_buff[1]=0x30;
 							        read_buff[2]=0x35;
                                    transmit1_cmd("400DATA:               \r");
								    transmit1_cmd(read_buff);
								    transmit1_cmd("405on\r");
								  }
								  screen_flag=0x42;
								  input_dig_num=0;
								  input_initial=0;
								  repeat_flag=0;
								  teaching_flag=0;
							      break;
							      default:
							      break;
							    } 
				             }
						  else
						     {
							   f3_function=0;
							   break;
						  	 } 
				          break;
				  case F4:f2_function=0;      //enter sub face
				          if(f3_function!=0)
				          f3_function--;
				          if(f1_function==1)
						     {
							   if(f3_function==0)  f3_function=3;
							   switch(f3_function)
						        {
							      case(1):
							      transmit1_cmd("208on\r");
								  external_EEPROM_read(0,max_speed_x,read_buff);
								  read_buff[0]=0x32;
	                              read_buff[1]=0x30;
 							      read_buff[2]=0x38;
                                  transmit1_cmd("200X  axis:            \r");
								  transmit1_cmd(read_buff);
								  transmit1_cmd("208on\r");
								  screen_flag=0x11;
								  input_dig_num=0;
								  input_initial=0;
								  repeat_flag=0;
                				  break;
							      case(2):
							      transmit1_cmd("308on\r");
								  external_EEPROM_read(0,max_speed_y1,read_buff);
								  read_buff[0]=0x33;
	                              read_buff[1]=0x30;
 							      read_buff[2]=0x38;
                                  transmit1_cmd("300Y1 axis:            \r");
								  transmit1_cmd(read_buff);
								  transmit1_cmd("308on\r");
								  screen_flag=0x12;
								  input_dig_num=0;
								  input_initial=0;
								  repeat_flag=0;
                				  break;
							      case(3):
							      transmit1_cmd("408on\r");
								  external_EEPROM_read(0,max_speed_y2,read_buff);
								  read_buff[0]=0x34;
	                              read_buff[1]=0x30;
 							      read_buff[2]=0x38;
                                  transmit1_cmd("400Y2 axis:            \r");
								  transmit1_cmd(read_buff);
								  transmit1_cmd("408on\r");
								  screen_flag=0x13;
								  input_dig_num=0;
								  input_initial=0;
								  repeat_flag=0;
                				  break;
							      default:
							      break;
							    } 
				        	 }
						  else if(f1_function==2)
						     {
							   if(f3_function==0)  f3_function=2;
							   switch(f3_function)
						        {
							      case(1):
							      transmit1_cmd("300POSITION NO:        \r");
								  transmit1_cmd("312on\r");
								  screen_flag=0x21;
								  input_dig_num=0;
								  input_initial=0;
								  position_flag=0;
								  repeat_flag=0;
							      break;
							      case(2):
								  transmit1_cmd("400DATA:               \r");
							      transmit1_cmd("405on\r");
								  if(position_flag==1)
								  {
								    k=x_position_0+position_num*20;
								    external_EEPROM_read(0,k,read_buff);
								    read_buff[0]=0x34;
	                                read_buff[1]=0x30;
 							        read_buff[2]=0x35;
                                    transmit1_cmd("400DATA:               \r");
								    transmit1_cmd(read_buff);
								    transmit1_cmd("405on\r");
								  }
								  screen_flag=0x22;
								  input_dig_num=0;
								  input_initial=0;
								  repeat_flag=0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -