📄 motor.c.bak
字号:
Needle[u_a].X_Reference = Needle[u_a-1].X_Reference;
Needle[u_a].Y_Reference = Needle[u_a-1].Y_Reference;
Needle[u_a].Work_State = Needle[u_a-1].Work_State;
Needle[u_a].Embroider_Mode = Needle[u_a-1].Embroider_Mode;
Needle[u_a].Sequence = Needle[u_a-1].Sequence;
}
Needle[0].Work_State = 0;
Needle[0].Sequence = Needle[1].Sequence - 1;
--u_File_Point_Front;
Needle[0].Embroider_Mode = NORMAL;
Needle[0].Y_Reference = *(horse + u_File_Point_Front);
--u_File_Point_Front;
Needle[0].X_Reference = *(horse + u_File_Point_Front);
if(u_File_Point_Front > 0)
{
if(*(horse + u_File_Point_Front -2) == 0x80)
{
--u_File_Point_Front;
--u_File_Point_Front;
if((*(horse + u_File_Point_Front) == 02) ||(*(horse + u_File_Point_Front) == 04))
Needle[0].Embroider_Mode = JUMP_NEEDLE;
if(*(horse + u_File_Point_Front) == 01)
Needle[0].Embroider_Mode = CHANGE_COLOR;
}
}
if(*(horse + u_File_Point - 4) == 0x80)
{
u_File_Point-=4;
--u_Jump_num;
}
else
u_File_Point-=2;
++u_Buffer_Index;
}
}
}
}
//================================================================================
//Sub-Routine Name:void Cal_Speed_Limit(void)
//Description:
//
//
//Input:
//Output:
//Modified:
//=================================================================================
void Cal_Speed_Limit(void)
{
signed char s_a,s_b;
unsigned int u_x;
s_a = Needle[u_Buffer_Index].X_Reference;
s_a = abs(s_a);
s_b = Needle[u_Buffer_Index].Y_Reference;
s_b = abs(s_b);
u_x = s_a > s_b ? s_a : s_b;
s_a = Needle[u_Buffer_Index+1].X_Reference;
s_a = abs(s_a);
s_b = Needle[u_Buffer_Index+1].Y_Reference;
s_b = abs(s_b);
s_a = s_a > s_b ? s_a : s_b;
u_x = u_x > s_a ? u_x : s_a;
if(u_x > 62)
{
Max_Speed_Limit = 1058;
Max_Speed_Limit *=600;
Max_Speed_Limit /=u_x;
}
else
{
Max_Speed_Limit = 10000;
}
}
unsigned short Draw_String_Flag = 0;
unsigned short u_Draw_Count = 0;
//================================================================================
//Sub-Routine Name:unsigned short Draw_String_Control(void)
//Description:
//
//
//Input:
//Output:
//Modified:
//=================================================================================
unsigned short Draw_String_Set(void)
{
if( Draw_String_Flag ==1 )
return (0);
else
{
Draw_String_Flag = 1;
u_Draw_Count = 1400;
return (1);
}
}
//================================================================================
//Sub-Routine Name:unsigned short Draw_String_Control(void)
//Description:
//
//
//Input:
//Output:
//Modified:
//=================================================================================
unsigned short Draw_String_Control(void)
{
if(Draw_String_Flag == 0)return(1);
if(u_Draw_Count > 0)
{
--u_Draw_Count;
u_OUT_IO|= Draw_String;
Out_01 = u_OUT_IO;
return(0);
}
else
{
u_OUT_IO&=~Draw_String;
Out_01 = u_OUT_IO;
Draw_String_Flag = 0;
return(1);
}
}
unsigned short Buckle_String_Flag = 0;
unsigned short u_Buckle_Count = 0;
//================================================================================
//Sub-Routine Name:unsigned short Buckle_String_Set(void)
//Description:
//
//
//Input:
//Output:
//Modified:
//=================================================================================
unsigned short Buckle_String_Set(void)
{
if( Buckle_String_Flag == 1 )
return (0);
else
{
Buckle_String_Flag = 1;
u_Buckle_Count = 1800;
return (1);
}
}
//================================================================================
//Sub-Routine Name:unsigned short Buckle_String_Control(void)
//Description:
//
//
//Input:
//Output:
//Modified:
//=================================================================================
unsigned short Buckle_String_Control(void)
{
if(Buckle_String_Flag == 0)return(1);
if(u_Buckle_Count > 0)
{
--u_Buckle_Count;
u_OUT_IO|= Buckle_String;
Out_01 = u_OUT_IO;
return(0);
}
else
{
u_OUT_IO&=~Buckle_String;
Out_01 = u_OUT_IO;
Buckle_String_Flag = 0;
return(1);
}
}
unsigned short Cut_String_Flag = 0;
unsigned short u_Cut_Count = 0;
//================================================================================
//Sub-Routine Name:unsigned short Cut_String_Set(void)
//Description:
//
//
//Input:
//Output:
//Modified:
//=================================================================================
unsigned short Cut_String_Set(void)
{
if(Cut_String_Flag == 1)
return (0);
else
{
Cut_String_Flag = 1;
u_Cut_Count = 1600;
return (1);
}
}
//================================================================================
//Sub-Routine Name:unsigned short Cut_String_Control(void)
//Description:
//
//
//Input:
//Output:
//Modified:
//=================================================================================
unsigned short Cut_String_Control(void)
{
if((n_THETA < -733) && (Buckle_Request_Flag == 0)) //196度
{
Buckle_Request_Flag = 1;
Buckle_String_Flag = 1;
u_OUT_IO |= Buckle_String; //扣线
Out_01 = u_OUT_IO;
}
if(((n_THETA < -990)||(n_THETA > -20)) && Buckle_String_Flag) //剪线
{
Buckle_String_Flag = 0;
Cut_String_Flag = 1;
u_OUT_IO |= Cut_String;
Out_01 = u_OUT_IO;
u_Cut_Count = 800;
}
if(u_Cut_Count > 0)
--u_Cut_Count;
else
{
if(((n_THETA < -990)||(n_THETA > -20))&& Cut_String_Flag )
{
u_OUT_IO &= ~Cut_String; //剪线停止
u_OUT_IO &= ~Buckle_String; //扣线停止
Out_01 = u_OUT_IO;
Cut_String_Flag = 0;
Draw_Request_Flag = 1; //勾线请求开始
}
}
if(Draw_Request_Flag && (n_THETA < -580) &&(n_THETA > -650))//勾线开始
{
Draw_Request_Flag = 0;
Draw_String_Flag = 1;
u_Draw_Count = 500;
u_OUT_IO |= Draw_String;
Out_01 = u_OUT_IO;
}
if(u_Draw_Count > 0)
--u_Draw_Count;
else
{
if(((In_04 & Draw_Flag) == 0)&& Draw_String_Flag)
{
u_OUT_IO &= ~Draw_String;
Out_01 = u_OUT_IO;
Draw_String_Flag = 0;
Buckle_Request_Flag = 0;
return(1);
}
}
return(0);
}
//================================================================================
//Sub-Routine Name:unsigned short Change_Color_Control(unsigned short u_Color)
//Description:
//
//
//Input:
//Output:
//Modified:
//=================================================================================
unsigned short Change_Color_Control(unsigned short u_Color)
{
static unsigned short Change_Timer = 0;
//static unsigned short Change_First_Flag = 1;
static unsigned short Change_Stop_Flag = 0;
if((In_02 & Needle_Index) == 0 )return(0);
/*if((u_Color == (In_02 & Needle_Index)) && (In_02 & Half_Turn))
{
Change_Stop_Flag = 1;
}
if (Change_Stop_Flag)*/
if((u_Color == (In_02 & Needle_Index)) && (In_02 & Half_Turn))
{
if(Change_Timer < 60)
{
u_OUT_IO &= ~Change_Color_Start;
u_OUT_IO |= Change_Color_P;
u_OUT_IO |= Change_Color_N;
Out_01 = u_OUT_IO;
Out_02 = u_OUT_IO & 0x10;
++Change_Timer;
return(0);
}
else
{
Change_Timer = 0;
Change_Stop_Flag = 0;
u_OUT_IO |= Change_Color_P;
u_OUT_IO |= Change_Color_N;
u_OUT_IO |= Change_Color_Start;
Out_01 = u_OUT_IO;
Out_02 = u_OUT_IO & 0x10;
return(1);
}
}
if(u_Color > (In_02 & Needle_Index))
{
u_OUT_IO &= ~Change_Color_P;
u_OUT_IO |= Change_Color_N;
u_OUT_IO |= Change_Color_Start;
Out_01 = u_OUT_IO;
Out_02 = u_OUT_IO & 0x10;
Change_Timer = 0;
return(0);
}
if(u_Color < (In_02 & Needle_Index))
{
u_OUT_IO &= ~Change_Color_N;
u_OUT_IO |= Change_Color_P;
u_OUT_IO |= Change_Color_Start;
Out_01 = u_OUT_IO;
Out_02 = u_OUT_IO & 0x10;
Change_Timer = 0;
return(0);
}
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -