📄 fs44b0mu110.c
字号:
M110_Motor_Status = (M110_Motor_Status & (~CR_I0)) |CR_I1;
break;
case MID_CURRENT:
M110_Motor_Status = (M110_Motor_Status & (~CR_I1)) |CR_I0;
break;
}
}
CPLD_M110_Motor_Addr = M110_Motor_Status;
}
//********************************************************
//********************************************************
static signed char PrinterInit(void)
{
// cut off printer current
signed char err;
Motor_Off(ALL_MOTOR);
err = GoHomePosition();
if(err < 0)
{
CR_Step = 0;
return -err;
}
Mdelay1MS(5);
CR_Step = 0;
return 0;
}
//********************************************************
//********************************************************
static void PF_Motor_A_Step(void)
{
//step = (nStep %4);
PF_A_Step = (++PF_A_Step) & 0x03;
switch(PF_A_Step)
{
case 0:
M110_Motor_Status = (M110_Motor_Status & (~PF_Phase1))|PF_Phase0;
break;
case 1:
M110_Motor_Status = M110_Motor_Status & (~(PF_Phase1|PF_Phase0));
break;
case 2:
M110_Motor_Status = (M110_Motor_Status & (~PF_Phase0))|PF_Phase1;
break;
case 3:
M110_Motor_Status = M110_Motor_Status| PF_Phase0 | PF_Phase1 ;
break;
}
CPLD_M110_Motor_Addr = M110_Motor_Status;
}
//********************************************************
//********************************************************
static void PF_IN_HalfDot_A(void)
{
SetWorkCurrent(PF_MOTOR,NORMAL_CURRENT);
PF_Motor_A_Step();
MdelayTime(7000);
Motor_Off(PF_MOTOR);
}
//********************************************************
//********************************************************
static void PF_IN_dot_A(int step)
{
u8 i=0;
//Acceleration
if(step < 16)
{
PF_Motor_A_Step();
MdelayTime(7000);
}
else if(step >= 16)
{
for (i = 0; i< 14; i++)
{
PF_Motor_A_Step();
MdelayTime(PF_Acceleration[i]);
}
//Constant Speed
for (i = 0; i< (step - 16); i++)
{
PF_Motor_A_Step();
MdelayTime(PF_ConstSpeed);
}
//Deceleration
for (i = 0; i< 2; i++)
{
PF_Motor_A_Step();
MdelayTime(PF_Deceleration[i]);
}
}
// Lash
PF_Motor_A_Step();
MdelayTime(PF_Lash);
}
//********************************************************
//********************************************************
static void PF_IN_Line_A(void)
{
u8 i=0;
//Acceleration
for (i = 0; i< 14; i++)
{
PF_Motor_A_Step();
MdelayTime(PF_Acceleration[i]);
}
//Constant Speed
for (i = 0; i< 8; i++)
{
PF_Motor_A_Step();
MdelayTime(PF_ConstSpeed);
}
//Deceleration
for (i = 0; i< 2; i++)
{
PF_Motor_A_Step();
MdelayTime(PF_Deceleration[i]);
}
// Lash
PF_Motor_A_Step();
MdelayTime(PF_Lash);
}
//********************************************************
//********************************************************
static void InPapeTest(void)
{
//u16 i=0;
SetWorkCurrent(PF_MOTOR,NORMAL_CURRENT);
PF_IN_Line_A();
Motor_Off(PF_MOTOR);
}
//********************************************************
//********************************************************
static void PF_Motor_B_Step(void)
{
PF_B_Step = (++PF_B_Step) & 0x03;
switch(PF_B_Step)
{
case 3:
M110_Motor_Status = (M110_Motor_Status & (~PF_Phase1))|PF_Phase0;
break;
case 2:
M110_Motor_Status = M110_Motor_Status & (~(PF_Phase1|PF_Phase0));
break;
case 1:
M110_Motor_Status = (M110_Motor_Status & (~PF_Phase0))|PF_Phase1;
break;
case 0:
M110_Motor_Status = M110_Motor_Status| PF_Phase0 | PF_Phase1 ;
break;
}
CPLD_M110_Motor_Addr = M110_Motor_Status;
}
//********************************************************
//********************************************************
static void PF_IN_dot_b(int step)
{
u8 i=0;
//Acceleration
if(step < 16)
{
PF_Motor_B_Step();
MdelayTime(7000);
}
else
{
for (i = 0; i< 14; i++)
{
PF_Motor_B_Step();
MdelayTime(PF_Acceleration[i]);
}
//Constant Speed
for (i = 0; i< (step - 16); i++)
{
PF_Motor_B_Step();
MdelayTime(PF_ConstSpeed);
}
//Deceleration
for (i = 0; i< 2; i++)
{
PF_Motor_B_Step();
MdelayTime(PF_Deceleration[i]);
}
}
// Lash
PF_Motor_B_Step();
MdelayTime(PF_Lash);
}
//********************************************************
//********************************************************
static void PF_OUT_Line_B(void)
{
u8 i=0;
//Acceleration
for (i = 0; i< 14; i++)
{
PF_Motor_B_Step();
MdelayTime(PF_Acceleration[i]);
}
//Constant Speed
for (i = 0; i< ram_spack - 16; i++)
{
PF_Motor_B_Step();
MdelayTime(PF_ConstSpeed);
}
//Deceleration
for (i = 0; i< 2; i++)
{
PF_Motor_B_Step();
MdelayTime(PF_Deceleration[i]);
}
// Lash
PF_Motor_B_Step();
MdelayTime(PF_Lash);
}
//********************************************************
//********************************************************
static void PF_OUT_HalfDot_B(void)
{
SetWorkCurrent(PF_MOTOR,NORMAL_CURRENT);
PF_Motor_B_Step();
MdelayTime(5000);
Motor_Off(PF_MOTOR);
}
//********************************************************
//********************************************************
static void PF_Line_spack(int step_c)
{
SetWorkCurrent(PF_MOTOR,NORMAL_CURRENT);
for(; step_c > 0; step_c--)
{
PF_Motor_B_Step();
MdelayTime(5000);
}
Motor_Off(PF_MOTOR);
}
//********************************************************
//********************************************************
static void OutPape1Line(void)
{
SetWorkCurrent(PF_MOTOR,NORMAL_CURRENT);
PF_OUT_Line_B();
Motor_Off(PF_MOTOR);
}
//********************************************************
//********************************************************
static void line_spacing(int tt)
{
u8 i=0;
SetWorkCurrent(PF_MOTOR,NORMAL_CURRENT);
//Acceleration
if(tt >= 16)
{
for (i = 0; i< 14; i++)
{
PF_Motor_B_Step();
MdelayTime(PF_Acceleration[i]);
}
//Constant Speed
for (i = 0; i< tt-16; i++)
{
PF_Motor_B_Step();
MdelayTime(PF_ConstSpeed);
}
//Deceleration
for (i = 0; i< 2; i++)
{
PF_Motor_B_Step();
MdelayTime(PF_Deceleration[i]);
}
}
else
{
for(i=0; i<tt; i++)
PF_OUT_HalfDot_B();
}
// Lash
PF_Motor_B_Step();
MdelayTime(PF_Lash);
Motor_Off(PF_MOTOR);
}
//********************************************************
// Carriage Motor Control part
//********************************************************
static void CR_Motor_A_Step(void)
{
u8 step=0;
if ((++CR_Step)>=CR_MAX_STEP) // 0-241
{
CR_Step = CR_MAX_STEP-1;
return;
}
step = CR_Step & 0x03;
switch(step)
{
case 0:
M110_Motor_Status = (M110_Motor_Status & (~CR_Phase0))|CR_Phase1;
break;
case 1:
M110_Motor_Status = M110_Motor_Status| CR_Phase0 | CR_Phase1 ;
break;
case 2:
M110_Motor_Status = (M110_Motor_Status & (~CR_Phase1))|CR_Phase0;
break;
case 3:
M110_Motor_Status = M110_Motor_Status & (~(CR_Phase1|CR_Phase0));
break;
}
CPLD_M110_Motor_Addr = M110_Motor_Status;
}
//********************************************************
//********************************************************
static void CR_Acceleration_A(void)
{
u8 i;
// Acceleration 11 steps
for (i=0; i<11; i++)
{
CR_Motor_A_Step();
MdelayTime(CR_Acc_A[i]);
}
// Constant speed (6 steps)
for (i=0; i<6; i++)
{
CR_Motor_A_Step();
MdelayTime(CR_ConstSpeed);
}
//total 18 steps
}
//********************************************************
//********************************************************
static void CR_ConstSpeed_A( u8 nStep)
{
u8 i;
for (i=0; i<nStep; i++)
{
CR_Motor_A_Step();
MdelayTime(CR_ConstSpeed);
}
}
//********************************************************
//********************************************************
static void CR_Deleration_A(void)
{
u8 i;
// Constant speed (3 steps)
for (i = 0; i < 3; i++)//
{
CR_Motor_A_Step();
MdelayTime(CR_ConstSpeed);
}
// Deleration speed
for (i = 0; i < 12; i++)
{
CR_Motor_A_Step();
MdelayTime(CR_Dec_A[i]);
}
CR_Motor_A_Step();
MdelayTime(CR_Lash);//14
}
//********************************************************
//********************************************************
static void CR_Motor_B_Step(void)
{
u8 step = 0;
if ((--CR_Step) == 0XFF) // 0-241
{
CR_Step = 0;
return;
}
step = CR_Step & 0x03;
switch(step)
{
case 0:
M110_Motor_Status = (M110_Motor_Status & (~CR_Phase0))|CR_Phase1;
break;
case 1:
M110_Motor_Status = M110_Motor_Status| CR_Phase0 | CR_Phase1 ;
break;
case 2:
M110_Motor_Status = (M110_Motor_Status & (~CR_Phase1))|CR_Phase0;
break;
case 3:
M110_Motor_Status = M110_Motor_Status & (~(CR_Phase1|CR_Phase0));
break;
}
CPLD_M110_Motor_Addr = M110_Motor_Status;
}
//********************************************************
//********************************************************
static void CR_Acceleration_B(void)
{
u8 i;
// Acceleration 8 steps
for (i = 0; i < 8; i++)
{
CR_Motor_B_Step();
MdelayTime(CR_Acc_B[i]);
}
// Constant speed (6 steps)
for (i = 0; i < 7; i++)
{
CR_Motor_B_Step();
MdelayTime(CR_ConstSpeed);
}
// total 14 steps
}
//********************************************************
//********************************************************
static void CR_ConstSpeed_B(u8 nStep)
{
u8 i;
for (i = 0; i < nStep; i++)
{
CR_Motor_B_Step();
MdelayTime(CR_ConstSpeed);
}
}
//********************************************************
//********************************************************
static void CR_Deleration_B(void)
{
u8 i;
// Constant speed (6 steps)
for (i = 0; i < 6; i++)
{
CR_Motor_B_Step();
MdelayTime(CR_ConstSpeed);
}
// Deleration speed 12 steps
for (i = 0; i < 12; i++)
{
CR_Motor_B_Step();
MdelayTime(CR_Dec_B[i]);
}
CR_Motor_B_Step();
MdelayTime(CR_Lash);
// total 18 steps
}
//********************************************************
//********************************************************
static void PrintTriggerPulse(void)
{
CPLD_M110_PrintTrigger_Addr = 0X05; // low
Mdelay2US();
Mdelay2US();
CPLD_M110_PrintTrigger_Addr = 0X0A; // HIGHT
//Mdelay2US();
//Mdelay2US();
//CPLD_M110_PrintTrigger_Addr = 0X05; // low
}
//********************************************************
// Function:行打印预处理
//********************************************************
static void PrintPreHandle(char *Str)
{
u16 u;
u8 i = 0,j,ch,c,t;
U32 qm = 0,wm = 0,ulOffset = 0,pos;
char iLen = 0;
//u8 ZiMoBuf[32],hzbuf[32],ascbuf[10];
u8 *ZiMoBuf;
u8 *hzbuf;
u8 *ascbuf;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -