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

📄 bspdotprnt.h

📁 基于ARM与μCOS-II的嵌入式操作系统实现针式和热敏微型打印程序.
💻 H
📖 第 1 页 / 共 2 页
字号:
/*
**************************************************************
*
* 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 + -