📄 bspdotprnt.h
字号:
/*
**************************************************************
*
* Copyright(C),1994-2006,Routon Electronic Co.,Ltd.
*
* 文件名: bspDotPrnt.h
*
* 内容描述: BSP模块穿孔打印底层驱动内部头文件
*
* 文件历史:
*
* 版本号 日期 作者 说明
* 01a 2007-1-16 keyuhui 创建文件
*
**************************************************************
*/
#ifndef _BSPDOTPRNT_H
#define _BSPDOTPRNT_H
#ifdef __cplusplus
extern "C" {
#endif /*__cplusplus */
#define INIT_STEP 12 /* HP检测后,到起始定位位置 */
#define PU 8000 /* 电机运行PU时间(us) */
#define PD 8000 /* 电机运行PD时间 */
#define PRNT_WIDTH 360 /* 穿孔打印机打印宽度 */
#define INIT_TIMER 2500 /* 初始化运行时走步定时(us) */
#define UP_STEP 14 /* 穿孔标准加速步数 */
#define DOWN_STEP 14 /* 穿孔标准减速步数 */
#define FEEDLEN 1440 /* 穿孔找黑标最大进纸步数 */
#define PF_SHORTLEN_TIMER 2000 /* 单步进纸或少步数(无加、减速过程)定时值(us)*/
#define PF_SPEED_TIMER 930 /* 穿孔匀速进纸定时值(匀速us) */
#define BM_DOT_COUNTER_STEP 100 /* 穿孔检测黑标步数上限 */
#define BM_DOT_CHECK_STEP 10 /* 认为是黑标时检测到黑标信号的步数 */
#define BM_TS_COUNTER_STEP 400 /* 热敏检测黑标步数上限 */
#define BM_TS_CHECK_STEP 64 /* 热敏认为是黑标时检测到黑标信号的步数/2mm/ */
#define NP_CHECK_STEP 320 /* 判断是无纸需要探测信号步数(10mm) */
#define HOLE_SPACE 72 /* 穿孔打印孔间距 */
#define BYTE_ASCII 10 /* ASCII字符字节数 */
#define BYTE_ARABIA 16 /* 阿拉伯语字节数 */
#define CR_M_CA() {g_uiCpldReg[4] ^= 0x02;CPLD_REG4 = g_uiCpldReg[4];} /* CR电机相序(取反) */
#define CR_M_CB() {g_uiCpldReg[4] ^= 0x01;CPLD_REG4 = g_uiCpldReg[4];} /* CR电机相序(取反)*/
#define LF_STEPB() {g_uiCpldReg[1] ^= 0x40;CPLD_REG1 = g_uiCpldReg[1];} /* 进纸相序*/
#define LF_STEPB_NON() {g_uiCpldReg[1] ^= 0x80;CPLD_REG1 = g_uiCpldReg[1];} /* 进纸相序*/
#define LF_STEPA() {g_uiCpldReg[1] ^= 0x10;CPLD_REG1 = g_uiCpldReg[1];} /* 进纸相序*/
#define LF_STEPA_NON() {g_uiCpldReg[1] ^= 0x20;CPLD_REG1 = g_uiCpldReg[1];} /* 进纸相序*/
#define PRTPWR_CON_ON() { IOSET2 = P225; } /* 机芯24v电源控制 */
#define PRTPWR_CON_OFF() { IOCLR2 = P225; } /* 机芯24v电源下电*/
#define CR_M_CAINT() {g_uiCpldReg[4] &= 0xFB;CPLD_REG4 = g_uiCpldReg[4];} /* CR电机相序初始化函数 */
#define CR_M_CBINT() {g_uiCpldReg[4] &= 0xFE;CPLD_REG4 = g_uiCpldReg[4];} /* CR电机相序初始化函数 */
#define LF_STEPB_INT() {g_uiCpldReg[1] |= 0x40;CPLD_REG1 = g_uiCpldReg[1];} /* 进纸电机相序初始化 */
#define LF_STEPB_NON_INT() {g_uiCpldReg[1] &= 0x7F;CPLD_REG1 = g_uiCpldReg[1];} /* 进纸电机相序初始化 */
#define LF_STEPA_INT() {g_uiCpldReg[1] |= 0x10;CPLD_REG1 = g_uiCpldReg[1];} /* 进纸电机相序初始化 */
#define LF_STEPA_NON_INT() {g_uiCpldReg[1] &= 0xDF;CPLD_REG1 = g_uiCpldReg[1];} /* 进纸电机相序初始化 */
#define CRI11_I121() {g_uiCpldReg[4] |= 0x04;CPLD_REG4 = g_uiCpldReg[4];} /* CR电机电流控制 电流置1*/
#define CRI11_I120() {g_uiCpldReg[4] &= 0xFB;CPLD_REG4 = g_uiCpldReg[4];} /* CR电机电流控制 电流置0*/
#define CRI01_I011() {g_uiCpldReg[4] |= 0x08;CPLD_REG4 = g_uiCpldReg[4];} /* CR电机电流控制 电流置1*/ /* CR电机电流控制 */
#define CRI01_I010() {g_uiCpldReg[4] &= 0xF7;CPLD_REG4 = g_uiCpldReg[4];} /* CR电机电流控制 电流置0*/
#define HOME_SENSOR (CPLD_REG2 & (1 << 2)) /* 检测HP定位信号 */
#define PE_SENSOR (CPLD_REG2 & (1 << 3)) /* 检测无纸信号 */
#define BLACK_SENSOR (IOPIN3 & P328) /* 检测黑标传感器信号 */
#define LF_STEP_SIGNAL_ON() {g_uiCpldReg[1] |= 0x04; CPLD_REG1 = g_uiCpldReg[1];}/* 打开进纸电机5v电源 */
//#define LF_STEP_SIGNAL_OFF(){g_uiCpldReg[1] &= 0xFB; CPLD_REG1 = g_uiCpldReg[1];}/* 关闭进制电机5v电源 */
#define PRT_TRIG_ON() { IOSET2 = P227;} /* 控制打印出针电源开 */
#define PRT_TRIG_OFF() { IOCLR2 = P227;} /* 控制打印出针电源关 */
#define PSOLENIO(Value) {g_uiCpldReg[3] = Value; CPLD_REG3 = g_uiCpldReg[3];}/* 控制打印出针 */
enum CURRENT_LEVEL
{
ZERO_CURRENT = 0, /* 线圈电流为基准电流的0% */
LOW_CURRENT, /* 线圈电流为基准电流的33% */
MIDDLE_CURRENT, /* 线圈电流为基准电流的66% */
HIGH_CURRENT /* 线圈电流为基准电流的100% */
};
extern UINT1 g_ucprntPFphase; /* 进纸电机运转相序变化 */
extern UINT1 g_ucprntCheckedBMark; /* 是否找到黑标标志 0 未找到 1找到黑标 */
extern UINT1 g_ucprntCheckBM; /* 进纸检测黑标标志 */
extern UINT2 g_usprntPaperLen1 ; /* 黑标进纸步数统计计数器,走纸起始位置和切纸位置函数与g_uiprntPaperLen2同步 */
extern UINT2 g_usprntPaperLen2 ; /* 黑标纸进纸步数统计计数器,遇黑标清0 */
extern UINT2 g_usprntPaperLen3 ; /* 纸总长计数器1,非定长票据步数统计用,打印票据设定参数后步数清0 */
extern UINT1 g_ucPrntCheckBMInt; /* 打印机初始化检测黑标流程 */
/*
********************************************************
*
* 函数名:bspDotPrntFonts
*
* 功 能:打印机自测打印完整汉字库
*
* 输 入:无
*
* 输 出:s_ucprntBuffDataIn
*
* 返 回:SUCCESS ---处理成功
*
********************************************************
*/
INT1 bspDotPrntFonts(void);
/*
*****************************************************
*
* 函数名:bspDotPrntParaInit
*
* 功 能:打印机底层变量初始化函数
*
* 输 入:g_ucPrntWidthAdjust
*
* 输 出:s_ucprntBuffDataIn
* s_ucprntBufferFull
* s_usprntPatternCount
*
* 返 回:N/A
*
*****************************************************
*/
void bspDotPrntParaInit(void);
/*
******************************************************
*
* 函数名:bspDotPrntCRmotorInit
*
* 功 能:穿孔打印机CR电机初始化定位函数
*
* 输 入:g_ucprntTimerInt
* g_ucprntState
*
* 输 出:
*
* 返 回:FAULT ------打印机故障
* SUCCESS-----初始化成功
*
******************************************************
*/
INT1 bspDotPrntCRmotorInit(void);
/*
**************************************************
*
* 函数名:bspDotPrntPFmotorInit
*
* 功 能:穿孔打印机进纸电机初始化定位函数
*
* 输 入:g_ucprntCheckBM
* g_ucPrntCheckBMInt
*
* 输 出:无
*
* 返 回:SUCCESS----处理成功
*
***************************************************
*/
INT1 bspDotPrntPFMotorInit
(
UINT1 _ucPaperType
);
/*
**************************************************
*
* 函数名:bspCKPrntCRLRPhase
*
* 功 能:穿孔打印机CR电机正、反向驱动相序
*
* 输 入:s_ucprntCRphase
*
* 输 出:无
*
* 返 回:SUCCESS----处理成功
*
***************************************************
*/
INT1 bspDotPrntCRPhase
(
UINT1 _ucDirection /* 0 反向驱动相序, 1 正向驱动相序 */
);
/*
**************************************************
*
* 函数名:bspDotPrntPFPhase
*
* 功 能:穿孔打印机进纸电机正、反向驱动相序
*
* 输 入: g_ucprntPFphase
*
* 输 出:g_usprntPaperLen3
* g_usprntPaperLen1
* g_usprntPaperLen2
*
* 返 回:N/A
*
***************************************************
*/
void bspDotPrntPFPhase
(
UINT1 _ucDirection, /* 正反、向进纸选择 */
UINT1 _ucPaperType /* 打印纸类型 */
);
/*
***************************************************
*
* 函数名:bspDotCRLeft2RightDrive
*
* 功 能:穿孔打印机正向打印一行数据
*
* 输 入:g_ucprntPattern1
*
* 输 出:无
*
* 返 回:N/A
*
***************************************************
*/
void bspDotCRLeft2RightDrive(void);
/*
***************************************************
*
* 函数名:bspDotPrntDrive
*
* 功 能:穿孔打印倍高打印时单向打印一行
*
* 输 入:g_ucprntPattern3
*
* 输 出:无
*
* 返 回:N/A
*
***************************************************
*/
void bspDotPrntDrive
(
UINT1 _ucDirection /* 正反向打印驱动选择 */
);
/*
***************************************************
*
* 函数名:bspDotCRRight2LeftDrive
*
* 功 能:穿孔打印机反向打印一行数据
*
* 输 入:g_ucprntPattern2
* g_ucprntAdjustLevel
*
* 输 出:无
*
* 返 回:N/A
*
***************************************************
*/
void bspDotCRRight2LeftDrive(void);
/*
**************************************************
*
* 函数名:bspDotPrntPFLineSpace
*
* 功 能:打印出针控制
*
* 输 入:无
*
* 输 出:无
*
* 返 回:N/A
*
***************************************************
*/
void bspDotprntControlPins
(
UINT1 _ucValue /*打印字模的值*/
);
/*
*****************************************************
*
* 函数名:bspDotPrntMode
*
* 功 能:选择打印模式
*
* 输 入:无
*
* 输 出:s_ucPrntDoubleWidth
* s_ucPrntDoubleWidth
* s_ucPrntDoubleHigh
* s_ucPrntDoubleHigh
*
* 返 回:N/A
*
******************************************************
*/
void bspDotPrntMode
(
UINT1 _ucFontMode /* 打印模式判断 */
);
/*
*****************************************************
*
* 函数名:bspDotPrntGetPattern
*
* 功 能:穿孔打印机取字模函数
*
* 输 入:s_ucprntBuffDataIn
* s_ucprntDataBuffer
* s_ucprntCharSpace
* g_ucPrntWidthAdjust
*
* 输 出:g_ucprntPattern1
* g_ucprntPattern2
* s_usprntPatternCount
*
* 返 回:处理的字节数
*
******************************************************
*/
UINT1 bspDotPrntGetPattern
(
UINT1 _ucStart /* 开始取字模的位置 */
);
/*
*****************************************************
*
* 函数名:bspDotASCIIGetPattern
*
* 功 能:穿孔打印机ASCII取字模处理函数
*
* 输 入:g_ucPrntOrderMode
*
* 输 出:
*
* 返 回:SUCCESS
*
******************************************************
*/
UINT1 bspDotASCIIGetPattern
(
UINT1 _ucTempData /* 开始取字模的地址 */
);
/*
*****************************************************
*
* 函数名:bspDotArabiaGetPattern
*
* 功 能:穿孔打印机Arabia取字模处理函数
*
* 输 入:g_ucPrntOrderMode
*
* 输 出:
*
* 返 回:SUCCESS
*
******************************************************
*/
UINT1 bspDotArabiaGetPattern
(
UINT1 _ucTempData /* 开始取字模的地址 */
);
/*
*****************************************************
*
* 函数名:bspDotArabChacGetPattern
*
* 功 能:穿孔打印机阿拉伯语字符正向字模处理函数
*
* 输 入:s_ucPrntDoubleHigh
* s_ucprntCharSpace
* s_ucPrntDoubleWidth
*
* 输 出:g_ucprntPattern1
* g_ucprntPattern3
* s_usprntPatternCount
*
* 返 回:SUCCESS
*
******************************************************
*/
UINT1 bspDotArabChacDealPattern
(
UINT1 _ucTempData, /* 开始取字模的地址 */
UINT1 _ucLangType /* 语言类型(0 ASCII 1阿拉伯语) */
);
/*
*****************************************************
*
* 函数名:bspDotReverseDealPattern
*
* 功 能:穿孔打印机阿拉伯语反序字模处理函数
*
* 输 入:s_ucPrntDoubleHigh
* s_ucprntCharSpace
* s_ucPrntDoubleWidth
*
* 输 出:g_ucprntPattern1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -