亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bspdotprnt.c

?? 基于ARM與μCOS-II的嵌入式操作系統(tǒng)實現(xiàn)針式和熱敏微型打印程序.
?? C
?? 第 1 頁 / 共 5 頁
字號:

#include "intfBsp.h"
#include "intfPrnt.h"

#include "bspDotPrnt.h"
#include "bspTimer.h"


/*------------------ ----全局變量定義-- ----------------------*/
UINT1 	g_ucprntPattern1[PRNT_WIDTH] = {0};		/* 穿孔打印從左到右的字模緩存 */		
UINT1 	g_ucprntPattern2[PRNT_WIDTH] = {0};		/* 穿孔打印從右到左的字模緩存 */
UINT1   g_ucprntPattern3[PRNT_WIDTH] = {0};	
UINT2	g_usprntPaperLen1 = 0;					/* 黑標進紙步數(shù)統(tǒng)計計數(shù)器,走紙起始位置和切紙位置函數(shù)與g_uiprntPaperLen2同步 */
UINT2	g_usprntPaperLen2 = 0;					/* 黑標紙進紙步數(shù)統(tǒng)計計數(shù)器,遇黑標清0 */
UINT2   g_usprntPaperLen3 = 0;					/* 紙總長計數(shù)器1,非定長票據(jù)步數(shù)統(tǒng)計用,打印票據(jù)設(shè)定參數(shù)后步數(shù)清0 */
UINT1 	g_ucPrntCheckBMInt = 0;					/* 打印機初始化檢測黑標流程 */
UINT1   g_ucprntPFphase;						/* 進紙電機運轉(zhuǎn)相序變化 */			        
UINT1 	g_ucprntState = 0;						/* 打印機的狀態(tài) */
UINT2   g_usPrintLocatOffset = 0;				/* 打印起始位置 */
UINT1   g_ucPrntWidthAdjust = 0;                /* 打印寬度調(diào)整點數(shù),通過調(diào)整打印點,實現(xiàn)打印寬度調(diào)節(jié) */
UINT1	g_ucprntAdjustLevel = 4;				/* 打印效果調(diào)節(jié)參數(shù) */
UINT1	g_ucprntCheckedBMark = 0;				/* 是否找到黑標標志 0 未找到 1找到黑標 */
UINT1   g_ucprntCheckBM = 0;					/* 進紙檢測黑標標志 */
UINT2   g_usPrntBMCounter = 0; 			        /* 黑標步數(shù)統(tǒng)計 */
/*------------------ ----靜態(tài)全局變量定義-- ----------------------*/
static UINT2  s_usprntPatternCount = 0; 		/* 打印機緩存填充計數(shù)寄存器 */
static UINT1  s_ucprntDataBuffer[100];			/* 字模處理緩存緩沖區(qū) (穿孔、熱敏),存放待打印內(nèi)容區(qū)位碼 */
static UINT1  s_ucprntBuffDataIn = 0;			/* 緩沖區(qū)索引 (穿孔、熱敏) */
static UINT1  s_ucprntBufferFull = 0; 			/* 打印緩沖區(qū)滿標志 0打印緩沖區(qū)未滿、 1打印緩沖區(qū)已裝滿 */
static UINT1  s_ucprntCRphase;					/* 字車電機運轉(zhuǎn)相序變化 */
static UINT1  s_ucprntCharSpace = 0;			/* 字符間距 */
static UINT1  s_ucDataBufferFull = 0;			/* 打印字模區(qū)位碼接收緩沖區(qū)滿 */
static UINT1  s_ucPrntDoubleWidth = 0;			/* 倍寬打印標志(0 正常打印 1倍寬打印) */
static UINT1  s_ucPrntDoubleHigh = 0;			/* 倍高打印標志(0 正常打印 1倍高打印) */
static UINT1  s_ucRequestDoubleHigh = 0;		/* 打印數(shù)據(jù)含倍高處理需求(0 無、1有 )*/
/*-----------------------------------------------------------------*/

#define WAIT() 	 { while (!g_ucprntTimerInt); g_ucprntTimerInt = 0; }
const UINT2  prntCRSpeedUp[21] = 
	{5850, 4260 ,2150 ,1630 ,1420 ,1290 ,1200 ,1140 ,1090 ,1050 ,
	   1020, 990 ,990 ,990 ,990 ,990 ,940 ,940 ,940 ,940 ,940};
const UINT2  prntCRSpeeddown[21] = 
	{2150 ,1630 ,1420 ,1290 ,1200 ,1140 ,1090 ,1050 ,1020, 940 ,
		940 ,940 ,940 ,940 ,940 ,940 ,940 ,940 ,940,940,940};

/*
********************************************************
*
* 函數(shù)名:bspDotPrntInit
*
* 功  能:打印機底層初始化函數(shù)
*
* 輸  入:g_ucPaperType
*
* 輸  出:s_ucprntCRphase
*		  g_ucprntPFphase
*         g_ucprntTimerInt
*
* 返  回:SUCCESS ---初始化完成
*
********************************************************
*/
UINT1 bspDotPrntInit(void)
{
	/* 變量初始化 */
	bspDotPrntParaInit();
	/* 初始化字車電機HLLH、進紙電機初始相序 LHHL */
	s_ucprntCRphase = 0;
	CR_M_CAINT();
	CR_M_CBINT();
	g_ucprntPFphase = 0;

	LF_STEPB_INT();      
	LF_STEPB_NON_INT(); 
	LF_STEPA_INT();	
	LF_STEPA_NON_INT();	
	/* 打開機芯控制電源 */
	bspDotPrntPowerOn ();
	bspDotprntControlPins(0xff);
	/* 初始化電流水平 */
	bspDotPrntSetCurrentLevel(ZERO_CURRENT);	
	g_ucprntTimerInt = 0;	
	/* 字車電機、進紙電機初始化 */
	bspDotPrntCRmotorInit();
	bspDotPrntPFMotorInit(g_ucPaperType);

	return SUCCESS;
	
}

/*
********************************************************
*
* 函數(shù)名:bspDotPrntFonts
*
* 功  能:打印機自測打印完整漢字庫
*
* 輸  入:無
*
* 輸  出:s_ucprntBuffDataIn
*
* 返  回:SUCCESS  ---處理成功
*
********************************************************
*/
INT1 bspDotPrntFonts(void)
{
	UINT1 temp[198];
	UINT1 i,m;
	UINT1 j,k ;
	
	m = 0;
	while (1)
	{
		mem_set(temp, 0 , 198);
		j = 0;
		for (k = 0; k < 5; k++ )
		{	
			for (i = 0; i < 19; i ++)
			{
				temp[j] = 0xb0 + m;
				temp[j+1] = 0xa1 + 19*k + i;
				bspDotprntPutDataToBuff (&temp[j], 2);
				if (temp[j+1]==0xfe)
				{
					m ++;
				}
				j = j + 2;
				if ((0xb0 + m) > 0xf7) return SUCCESS;
			}
			bspDotprntAndNewline(1, 24);
			if (g_ucprntState&0x0f)
			{
				s_ucprntBuffDataIn = 0;
				return FAULT;
			}
		}
	}
}

/*
*****************************************************
*
* 函數(shù)名:bspDotPrntParaInit
*
* 功  能:打印機底層變量初始化函數(shù)
*
* 輸  入:g_ucPrntWidthAdjust
*
* 輸  出:s_ucprntBuffDataIn
*		  s_ucprntBufferFull
*         s_usprntPatternCount
*
* 返  回:N/A
*
*****************************************************
*/
void bspDotPrntParaInit(void)
{
	s_ucprntBuffDataIn = 0;	
	s_ucprntBufferFull = 0;
	mem_set(s_ucprntDataBuffer, 0 , sizeof(s_ucprntDataBuffer));
	mem_set(g_ucprntPattern1, 0 , sizeof(g_ucprntPattern1));
	mem_set(g_ucprntPattern2, 0 , sizeof(g_ucprntPattern2));
	mem_set(g_ucprntPattern2, 0 , sizeof(g_ucprntPattern3));
	return ;
}

/*
******************************************************
*
* 函數(shù)名:bspDotPrntCRmotorInit
*
* 功  能:穿孔打印機CR電機初始化定位函數(shù)
*
* 輸  入:g_ucprntTimerInt
*         g_ucprntState
*
* 輸  出:
*
* 返  回:FAULT ------打印機故障
*		  SUCCESS-----初始化成功
*
******************************************************
*/
INT1 bspDotPrntCRmotorInit(void)
{
	UINT1 ucCRRunFlag;
	UINT1 ucCRRunMode = 0;
	UINT2 uiCRRunSteps;
	
	bspDotPrntPowerOn();
	bspDotPrntSetCurrentLevel(HIGH_CURRENT);
	if (1 == bspDotPrntCheckHP())
	{
		ucCRRunMode = 2; /* 當前處于HP位置 */
	}

	/* 變量初始化 */
	g_ucprntTimerInt = 0;
	bspDotprntSetTimer(PU);
	uiCRRunSteps = 0;
	ucCRRunFlag = 1;
	
	while (ucCRRunFlag)
	{
		if (g_ucprntTimerInt)
		{
			g_ucprntTimerInt = 0;
			switch (ucCRRunMode)
			{
				case 0: /*字車向左運行,去尋找HP*/
				{
					bspDotPrntCRPhase(0);
					uiCRRunSteps ++;
					/* 觸發(fā)HP信號,轉(zhuǎn)到Mode3清步數(shù) */
					if (1 == bspDotPrntCheckHP())
					{
						ucCRRunMode = 3;
 					}
					else if (uiCRRunSteps >= 300)
					{
						g_ucprntState = g_ucprntState|MALFUNCTION;/* 故障 */
						bspDotPrntCRStop();
						ucCRRunFlag = 0;
						break;
						return FAULT;
					}
					
					bspTimer1Start(INIT_TIMER);
					break;
				}
				
				case 1: /* 觸發(fā)HP并調(diào)整后從HP去打印的起始位置 初始位置在HP位置左側(cè)n步 */
				{
					bspDotPrntCRPhase(0);
					uiCRRunSteps ++;
					/* 走偶數(shù)步,停留在雙線圈通電處 */
					if (uiCRRunSteps < INIT_STEP)
					{
 						bspDotprntSetTimer(INIT_TIMER);
					}
					else
					{
						bspDotprntSetTimer(PD);
						WAIT();
						bspDotPrntCRStop();
 						/* 如果向左運行14步后,未檢測到HP信號,則認為機械故障 */
						if (0 == bspDotPrntCheckHP())
						{
							g_ucprntState = g_ucprntState|MALFUNCTION;/* 故障 */
						}
						ucCRRunFlag = 0;
					}
					break;
				}
				
				case 2: /* 在HP位置向右運動100步,然后向左運動檢測HP之后運動14步 */
				{
					bspDotPrntCRPhase(1);
					uiCRRunSteps ++;
 					if (uiCRRunSteps < 100)
					{
						bspDotprntSetTimer(INIT_TIMER);
					}
					else
					{
						bspDotprntSetTimer(PD);
						WAIT();
						g_ucprntTimerInt = 0;
						ucCRRunMode = 0;
						uiCRRunSteps = 0;
					}
					break;
				}
				case 3: /*觸發(fā)HP位置后的調(diào)整*/
				{
					bspDotprntSetTimer(PD);
					WAIT();
					g_ucprntTimerInt = 0;
					ucCRRunMode = 1;
					uiCRRunSteps = 0;
 					break;
				}
				default:
					break;
			}
		}
	}
	return SUCCESS;
}

/*
**************************************************
*
* 函數(shù)名:bspDotPrntPFmotorInit
*
* 功  能:穿孔打印機進紙電機初始化定位函數(shù)
*
* 輸  入:g_ucprntCheckBM
*         g_ucPrntCheckBMInt
*
* 輸  出:無
*
* 返  回:SUCCESS----處理成功
*
***************************************************
*/
INT1 bspDotPrntPFMotorInit
(
	UINT1 _ucPaperType
)
{
	if (0 == _ucPaperType)
	{
		/* 非黑標紙進紙、退紙操作判斷無紙 */
		bspDotPrntPFLineSpace(1, 100);
		bspDotPrntPFLineSpace(0, 100);
	}
	else
	{
		/* 黑標紙進紙找黑標操作 */
		g_ucprntCheckBM = 1;
		g_ucPrntCheckBMInt = 1;
		bspDotPrntPFLineSpace (1 , 50);
	}
	return SUCCESS;
}

/*
**************************************************
*
* 函數(shù)名:bspCKPrntCRLRPhase
*
* 功  能:穿孔打印機CR電機正、反向驅(qū)動相序
*
* 輸  入:s_ucprntCRphase
*
* 輸  出:無
*
* 返  回:SUCCESS----處理成功
*
***************************************************
*/
INT1 bspDotPrntCRPhase
(
	UINT1 _ucDirection     /* 0 反向驅(qū)動相序, 1 正向驅(qū)動相序 */
)
{
	if (_ucDirection == 0)
	{
		switch (s_ucprntCRphase)
		{
			case 0:
				CR_M_CA();
				s_ucprntCRphase = 1;
				break;

			case 1:
				CR_M_CB();
				s_ucprntCRphase = 0;
				break;

			default:
				break;
		}
	}
	else if (_ucDirection== 1)
	{
		switch (s_ucprntCRphase)
		{
			case 0:
				CR_M_CB();
				s_ucprntCRphase = 1;
				break;

			case 1:
				CR_M_CA();
				s_ucprntCRphase = 0;
				break;

			default:
				break;
		}
	}	
	return SUCCESS;
}

/*
**************************************************
*
* 函數(shù)名:bspDotPrntPFPhase
*
* 功  能:穿孔打印機進紙電機正、反向驅(qū)動相序
*
* 輸  入: g_ucprntPFphase
*
* 輸  出:g_usprntPaperLen3
*		  g_usprntPaperLen1
*         g_usprntPaperLen2	
*
* 返  回:N/A
*
***************************************************
*/
void bspDotPrntPFPhase
(
	UINT1 _ucDirection,		/* 正反、向進紙選擇 */
	UINT1 _ucPaperType      /* 打印紙類型 */
)
{
	if (_ucDirection == 1)
	{
		switch (g_ucprntPFphase)
		{
			case 0:
				LF_STEPB();
				LF_STEPB_NON();
				g_ucprntPFphase = 1;
				break;

			case 1:
				LF_STEPA();
				LF_STEPA_NON();
				g_ucprntPFphase = 0;
				break;

			default:
				break;
		}
	}
	else if (_ucDirection == 0)
	{
		switch (g_ucprntPFphase)
		{
			case 0:
				LF_STEPA();
				LF_STEPA_NON();
				g_ucprntPFphase = 1;
				break;

			case 1:
				LF_STEPB();
				LF_STEPB_NON();
				g_ucprntPFphase = 0;
				break;

			default:
				break;
		}

	}

	if (0 == _ucPaperType)  /* 非黑標紙進紙步數(shù)統(tǒng)計 */
	{
		if (_ucDirection)
		{
			g_usprntPaperLen3 ++;
		}
		else if ((!_ucDirection) && ( g_usprntPaperLen3 >= 2 ))
		{
			g_usprntPaperLen3 --;
		}
	}
	else  /* 黑標紙步數(shù)統(tǒng)計 */
	{
		if (_ucDirection)
		{
			g_usprntPaperLen1 ++;
			g_usprntPaperLen2 ++;
		}
		else if ((!_ucDirection) && ( g_usprntPaperLen2 >= 2 ))
		{
			g_usprntPaperLen1 --;
			g_usprntPaperLen2 --;
		}
	}
	return;
}

/*
***************************************************
*
* 函數(shù)名:bspDotCRLeft2RightDrive
*
* 功  能:穿孔打印機正向打印一行數(shù)據(jù)
*
* 輸  入:g_ucprntPattern1
*
* 輸  出:無
*
* 返  回:N/A
*
***************************************************
*/
void bspDotCRLeft2RightDrive(void)
{
	UINT1 ucCRRunFlag = 1;
	UINT2 ucCRRunSteps = 0;
	UINT1 ucCRRunMode = 0;
	
	bspDotPrntSetCurrentLevel(LOW_CURRENT);
	/* 設(shè)置PU時間,讓出CPU執(zhí)行 */
	OSTimeDly(1);
	/*禁止任務(wù)切換  */
	OSSchedLock();
	bspDotPrntSetCurrentLevel(HIGH_CURRENT);
	
	while (ucCRRunFlag)
	{
		switch (ucCRRunMode)
		{
			case 0:	/* 設(shè)置驅(qū)動電流為滿電流 */
				bspDotPrntCRPhase(1);
				DelayXus(prntCRSpeedUp[ucCRRunSteps]);
				ucCRRunSteps ++;
				if (ucCRRunSteps == 16)
				{
					ucCRRunMode = 1;
					ucCRRunSteps = 0;
					bspDotPrntSetCurrentLevel(MIDDLE_CURRENT);
				}
				break;

			case 1: /*正向勻速運動并打印*/
				bspDotPrntCRPhase(1);
				ucCRRunSteps ++;
				PRT_TRIG_ON();
				PSOLENIO(~g_ucprntPattern1[ucCRRunSteps * 2 - 2]);
				Delay350us();
				PSOLENIO(0xff);		/* 收針操作 */
				PRT_TRIG_OFF();
				Delay135us();
				PRT_TRIG_ON();
				PSOLENIO(~g_ucprntPattern1[ucCRRunSteps * 2 - 1]);
				Delay350us();
				PSOLENIO(0xff);		/* 收針操作 */
				PRT_TRIG_OFF();
				Delay115us();
				/* 打印完畢,準備減速 */
				if (ucCRRunSteps == (PRNT_WIDTH / 2))
				{
					ucCRRunMode = 2;
					ucCRRunSteps = 0;
				}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产综合色精品一区二区三区| 99精品国产一区二区三区不卡| 91小视频在线免费看| 欧美激情一区二区三区全黄| 成人av资源网站| 亚洲精品自拍动漫在线| 欧美一区二区三区四区五区| 麻豆中文一区二区| 亚洲私人黄色宅男| 日韩欧美的一区二区| 国产·精品毛片| 亚洲激情六月丁香| 国产日韩欧美精品综合| 91视频com| 不卡一卡二卡三乱码免费网站| 亚洲综合色网站| 国产色一区二区| www成人在线观看| 51精品视频一区二区三区| 欧洲在线/亚洲| 欧美色涩在线第一页| 91网站最新地址| 成人免费不卡视频| 欧美性生活久久| 91麻豆文化传媒在线观看| 久久99精品国产.久久久久久| 亚洲丶国产丶欧美一区二区三区| 中文字幕成人在线观看| 欧美精品一区二区三区一线天视频| 欧洲另类一二三四区| 91免费在线视频观看| 国产精品亚洲а∨天堂免在线| www.在线成人| 色偷偷一区二区三区| 欧美日韩在线三级| 91精品国产91综合久久蜜臀| 欧美日韩一卡二卡三卡 | 99精品热视频| 91视频观看免费| 久久精品视频免费| 亚洲日本电影在线| 亚洲高清免费在线| 捆绑紧缚一区二区三区视频| 韩国三级中文字幕hd久久精品| 国产白丝精品91爽爽久久| 色老综合老女人久久久| 欧美一区二区三区喷汁尤物| 久久影院午夜论| 国产精品二三区| 日韩国产欧美视频| 国产精品自拍av| 91久久精品一区二区| 欧美成人激情免费网| 国产精品美女久久久久久2018| 亚洲一区二区三区四区不卡| 九九九精品视频| 欧美日韩国产高清一区二区| 国产性天天综合网| 五月婷婷综合激情| 成人激情av网| 久久综合久久综合亚洲| 国产精品久久久久影院| 日本不卡在线视频| 欧美久久久久免费| 亚洲狠狠丁香婷婷综合久久久| 精品一区二区三区视频在线观看| 色综合激情久久| 日韩一区欧美小说| 国产91精品一区二区麻豆亚洲| 欧美一级专区免费大片| 亚洲高清不卡在线观看| 91欧美激情一区二区三区成人| 久久久久久久综合| 床上的激情91.| 国产精品视频看| 成人福利电影精品一区二区在线观看| 国产精品乱码一区二区三区软件| 日韩精品国产精品| 日韩欧美精品在线| 免费成人在线影院| 久久精品男人天堂av| 免费观看在线综合色| 91在线你懂得| 亚洲精品国产无天堂网2021| 欧美日韩另类一区| 丝袜亚洲精品中文字幕一区| 69av一区二区三区| 久久se精品一区二区| 日本一区二区三区电影| 成人av电影在线观看| 亚洲综合一区在线| 日韩美女在线视频| 欧洲一区在线观看| 国产高清不卡一区| 日韩影视精彩在线| 综合久久给合久久狠狠狠97色| 欧美色网一区二区| 国产成人a级片| 丝袜美腿成人在线| 国产精品美女久久久久aⅴ国产馆| 日本高清不卡aⅴ免费网站| 极品少妇xxxx精品少妇| 一区av在线播放| 国产精品网曝门| 欧美一级二级在线观看| 99视频一区二区三区| 麻豆免费精品视频| 亚洲一区二区欧美日韩| 国产精品白丝在线| 欧美精品一区二| 欧美久久一二三四区| 91福利在线看| 欧美三级在线看| 91蜜桃在线免费视频| 懂色av噜噜一区二区三区av| 韩国三级电影一区二区| 免费成人性网站| 日韩激情av在线| 午夜日韩在线电影| 亚洲一区二区高清| 亚洲妇女屁股眼交7| 亚洲国产aⅴ成人精品无吗| 成人av网址在线| 成人免费高清视频| 在线精品视频免费播放| 91年精品国产| 欧美日韩一级二级三级| 91精品国产手机| 精品久久久久久久久久久久久久久| 91精品国产综合久久香蕉麻豆| 精品91自产拍在线观看一区| 2欧美一区二区三区在线观看视频| 久久精子c满五个校花| 国产精品狼人久久影院观看方式| 夜夜操天天操亚洲| 国产一区二区三区日韩 | 日韩精品在线一区二区| 久久久不卡网国产精品二区| 中文幕一区二区三区久久蜜桃| 最新热久久免费视频| 一区二区三区欧美视频| 免费成人在线视频观看| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 日韩在线卡一卡二| 成人涩涩免费视频| 91精品国产一区二区| 亚洲欧美经典视频| 国产福利不卡视频| 制服丝袜亚洲网站| 亚洲在线观看免费视频| 成人手机在线视频| 2017欧美狠狠色| 日韩电影免费在线观看网站| 99久久精品费精品国产一区二区| 337p亚洲精品色噜噜狠狠| 亚洲精品日韩专区silk| 国产精品白丝jk黑袜喷水| 欧美一卡二卡三卡| 奇米四色…亚洲| 欧美精品乱码久久久久久按摩| 亚洲综合色婷婷| 欧美日韩精品久久久| 亚洲第一电影网| 欧美性欧美巨大黑白大战| 成人欧美一区二区三区黑人麻豆 | 在线国产电影不卡| 亚洲同性同志一二三专区| 丁香另类激情小说| 国产午夜亚洲精品理论片色戒| 极品少妇xxxx偷拍精品少妇| 日韩精品中文字幕在线一区| 秋霞av亚洲一区二区三| 欧美一区二区三区在线观看| 奇米色一区二区| 国产日本一区二区| 91在线精品一区二区三区| 亚洲视频资源在线| 欧美性一区二区| 久久成人久久鬼色| 国产精品私人影院| 欧美色综合网站| 激情欧美一区二区三区在线观看| 国产精品丝袜在线| 欧美电影一区二区| 国产福利一区二区三区在线视频| 一区二区三区加勒比av| 2019国产精品| 欧美日韩精品一区二区天天拍小说 | 亚洲香蕉伊在人在线观| 久久久精品免费免费| 欧美精三区欧美精三区| 国产激情视频一区二区在线观看| 亚洲人快播电影网| 欧美mv日韩mv国产| 欧美精品aⅴ在线视频| 成人国产精品免费网站| 久久国产精品72免费观看| 亚洲国产va精品久久久不卡综合| 欧美激情一二三区| 精品国产3级a|