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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mbcommon.c

?? S3C2410ARM處理器的uCos2移植實驗代碼
?? C
字號:
/****************************************Copyright (c)**************************************************
**                                  廣州致遠電子有限公司
**
**                                 http://www.21cm.com.cn
**
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			MBCommon.c
** Last modified Date:  2005-01-11
** Last Version:		1.0
** Descriptions:		
**
**------------------------------------------------------------------------------------------------------
** Created by:			ZhouLishan
** Created date:		2005-01-11
** Version:				1.0
** Descriptions:		
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/

#include "config.h"


PDU_HANDLE 				PDUData;
volatile ADU_CONTROL 	ADUData;

#ifdef UCOSII
extern	OS_EVENT *mb_handle_event_ptr;
#endif

extern uint16 Modbus_CRC16(uint8 *Buff_addr,uint16 len);

//********************************************************************************************************
// 函數名稱:StartCountT15
// 輸入參數:無
// 輸出參數:無
// 功能描述:使能T1.5計數。T1.5的時間值為UART傳輸1.5個字符的時間。
//			 注意:該函數只是使能計時,不允許在函數中產生任何延時。
//			       如果T1.5時間結束執行T15EndHandle函數。
//********************************************************************************************************
extern void StartCountT15(void); 

//********************************************************************************************************
// 函數名稱:StartCountT35
// 輸入參數:無
// 輸出參數:無
// 功能描述:使能T3.5計數。T3.5的時間值為UART傳輸3.5個字符的時間。
//			 注意:該函數只是使能計時,不允許在函數中產生任何延時。
//			       如果T3.5時間結束執行T35EndHandle函數。
//********************************************************************************************************
extern void StartCountT35(void);


volatile uint32 g_10mS_count;
volatile uint8 	g_TimeEnd;				// 應答超時
//******************************************************************************************
// 函數名稱:Get_10mS
// 輸入參數:無
// 輸出參數:10mS計數寄存器
// 功能描述:獲取10mS計數值,該值每10毫秒加1
//******************************************************************************************
void Waite10mS(uint32 time)
{
	g_TimeEnd = FALSE;
	g_10mS_count=time;
}



//*****************************************************************************
// 函數名稱:OverTimeHandle
// 輸入參數:無
// 輸出參數:無
// 功能描述:
//*****************************************************************************
void Time10mSHandle(void)
{
	if(g_10mS_count==0)	return; // g_10mS_count,值為0表示沒有計數事件,直接返回
	g_10mS_count--;				// 計數減1,直接到0為直
	if(g_10mS_count==0)
	{	g_TimeEnd = TRUE;
	#ifdef UCOSII
		OSSemPost(mb_handle_event_ptr);				// 發報信號量,使MODBUS服務任務處理傳輸
	#endif
	}
}

//********************************************************************************************************
// 函數名稱:T15EndHandle
// 輸入參數:無
// 輸出參數:無
// 功能描述:T1.5超時處理
//********************************************************************************************************
void T15EndHandle(void)
{
	uint16 RedundancyCheck;
	if(ADUData.EndT15)
		return;
	ADUData.EndT15 = TRUE;		// T1.5時間結束	

	if((*ADUData.ADUBuffPtr==BROADCAST_ADDRESS)||		// 驗證地址是否有效
	   (*ADUData.ADUBuffPtr==ADUData.Address))
	{
		RedundancyCheck = *(ADUData.ADUBuffPtr+ADUData.ADULength-2)|
								  (*(ADUData.ADUBuffPtr+ADUData.ADULength-1)<<8);
		if(RedundancyCheck == Modbus_CRC16(ADUData.ADUBuffPtr,ADUData.ADULength-2))	// CRC校驗
		{
			ADUData.FrameOK = TRUE;
			return;
		}
	}
	ADUData.FrameOK = FALSE;
	
}

//********************************************************************************************************
// 函數名稱:T35EndHandle
// 輸入參數:無
// 輸出參數:無
// 功能描述:T3.5結束處理
//********************************************************************************************************
void T35EndHandle(void)
{

	if(ADUData.FrameOK)
	{
		PDUData.PDUBuffPtr = ADUData.ADUBuffPtr+1;
		PDUData.PDULength = ADUData.ADULength-3;
		PDUData.FunctionCode = *PDUData.PDUBuffPtr; // 保存功能代碼
		PDUData.FrameOK=TRUE;
	}
	else
	{
		PDUData.FrameOK=FALSE;
	}
   	ADUData.EndT15 = FALSE;		// 允許收到字符
	ADUData.ADULength = 0;
#ifdef UCOSII
	OSSemPost(mb_handle_event_ptr);				// 發報信號量,使MODBUS服務任務處理傳輸
#endif
}

 
//********************************************************************************************************
// 函數名稱:ReceOneChar
// 輸入參數:ReceCharacter
// 輸出參數:無
// 功能描述:接收一個字符處理
//           要求:接收到一個字符后立即傳入該函數處理。
//********************************************************************************************************
void ReceOneChar(uint8 ReceCharacter)
{

	if(ADUData.EndT15==TRUE)
	{	StartCountT35();			// 起動T3.5計時
		return;
	}
	ADUData.FrameOK = FALSE;
	StartCountT15();			// 起動T1.5計時
	StartCountT35();			// 起動T3.5計時

   	*(ADUData.ADUBuffPtr + ADUData.ADULength) = ReceCharacter;
	ADUData.ADULength++; 
}

//********************************************************************************************************
// 函數名稱:PutCharInPUD
// 輸入參數:ch,寫入的字符
//			 EndChar,
// 輸出參數:無
// 功能描述:接收一個字符處理
//           要求:接收到一個字符后立即傳入該函數處理。
//********************************************************************************************************
uint8 PutDataInPUD(uint8 *CharPtr,uint16 Length)
{
	uint16 i;
	if(Length<=MAX_PDU_DATA_LENGTH)
	{
		for(i=0;i<Length;i++)
			*(PDUData.PDUBuffPtr+i)=*(CharPtr+i);
		PDUData.PDULength = Length ;
		PDUData.FrameOK = TRUE;
		return TRUE;
	}
	else
		return FALSE;
}


/*********************************************************************************************************
**                            OSModbusServe MODBUS服務任務
********************************************************************************************************/
#ifdef UCOSII
	void OSModbusServe	(void *pdata)
{	pdata = pdata;
	while (1)
	{	IdleModbus();
	}
}   
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
老司机午夜精品99久久| 久久午夜国产精品| 成人免费高清在线| 午夜免费久久看| 中文字幕不卡在线播放| 亚洲精品久久久蜜桃| 国产欧美综合在线| 日韩欧美电影一区| 欧美日精品一区视频| 国产白丝精品91爽爽久久| 免费观看30秒视频久久| 亚洲大片一区二区三区| 一区二区久久久久久| 日韩一区在线免费观看| 国产精品女人毛片| 国产精品成人午夜| 亚洲欧洲日韩av| 国产精品久久国产精麻豆99网站| 国产亚洲欧美日韩俺去了| 久久久国产精品麻豆| 国产精品丝袜在线| 国产精品萝li| 亚洲另类在线视频| 亚洲成人精品一区| 日本在线不卡一区| 蜜臀av一区二区在线观看| 九九**精品视频免费播放| 久久99精品久久久久婷婷| 麻豆传媒一区二区三区| 懂色av中文一区二区三区 | 日韩高清不卡在线| 国产一区二区三区av电影| 国产不卡在线播放| 91麻豆国产在线观看| 欧美精品少妇一区二区三区 | 91国产福利在线| 精品久久一区二区| 国产精品丝袜91| 午夜视黄欧洲亚洲| 国产精品综合网| 欧美日韩国产123区| 国产无一区二区| 午夜精品福利一区二区蜜股av| 久久99精品国产.久久久久久| 成人av集中营| 久久伊人中文字幕| 日韩高清在线一区| a4yy欧美一区二区三区| 精品日韩av一区二区| 亚洲一区二区三区免费视频| 国产激情一区二区三区四区 | 26uuu另类欧美| 三级欧美在线一区| 一本到不卡免费一区二区| 欧美精品一区二区蜜臀亚洲| 亚洲福利国产精品| 91猫先生在线| 亚洲欧美国产高清| 国产福利精品导航| 日韩欧美视频在线| 另类小说视频一区二区| 欧美午夜一区二区三区| 亚洲卡通欧美制服中文| 日韩一区二区三区观看| 喷水一区二区三区| 日韩一级片网址| 男女男精品视频| 日韩美女一区二区三区四区| 免费欧美日韩国产三级电影| 51精品国自产在线| 精品一区二区三区免费毛片爱 | 中文一区二区完整视频在线观看| 国产一本一道久久香蕉| 久久久久成人黄色影片| 高清免费成人av| 亚洲图片激情小说| 欧美亚洲综合久久| 另类综合日韩欧美亚洲| 国产欧美一区二区精品婷婷| 国产91精品精华液一区二区三区| 国产精品福利电影一区二区三区四区| voyeur盗摄精品| 丝袜美腿成人在线| 国产亚洲欧美一区在线观看| 99精品久久99久久久久| 天堂资源在线中文精品| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 欧美日本一区二区三区四区| 美国av一区二区| 中文字幕在线免费不卡| 91精品国产综合久久久久久久| 国产乱码精品一品二品| 亚洲精品免费看| 久久久亚洲精华液精华液精华液| 色又黄又爽网站www久久| 日本不卡123| 亚洲精品国产无套在线观| 精品欧美乱码久久久久久| 99精品1区2区| 国产精品亚洲а∨天堂免在线| 亚洲综合男人的天堂| 国产精品嫩草影院av蜜臀| 91精品国产91久久综合桃花| 99久久久国产精品| 国产白丝精品91爽爽久久| 国内一区二区视频| 日韩精品一级中文字幕精品视频免费观看| 久久久久97国产精华液好用吗| 欧美一区二区在线播放| 成人黄色电影在线| 韩国女主播成人在线| 日韩黄色免费电影| 亚洲第一成年网| 亚洲亚洲精品在线观看| 一区二区三区四区国产精品| 国产精品视频一二三区| 国产精品日日摸夜夜摸av| 国产精品女同互慰在线看| 国产精品系列在线| 国产精品婷婷午夜在线观看| 国产亚洲欧美日韩日本| 久久精品视频一区二区三区| 精品久久久久久久人人人人传媒| 欧美一区二区在线观看| 日韩精品资源二区在线| 久久新电视剧免费观看| 久久久另类综合| 亚洲国产精品ⅴa在线观看| 中文字幕亚洲精品在线观看| 亚洲欧美日韩成人高清在线一区| 一区二区三区四区精品在线视频| 亚洲成a人v欧美综合天堂下载| 亚洲高清免费在线| 久久精品免费看| 93久久精品日日躁夜夜躁欧美| 欧美性生活一区| 精品国产亚洲在线| 亚洲欧洲av在线| 午夜电影一区二区三区| 精品中文字幕一区二区小辣椒| 国产精品性做久久久久久| 99久久婷婷国产综合精品电影| 欧美日韩精品欧美日韩精品一综合| 欧美一级精品大片| 一区在线播放视频| 日韩电影在线免费看| 不卡一区二区在线| 69久久夜色精品国产69蝌蚪网| 国产亚洲精品福利| 卡一卡二国产精品| 欧美日韩在线亚洲一区蜜芽| 欧美mv日韩mv国产网站app| 亚洲私人影院在线观看| 蜜桃av一区二区在线观看| 91亚洲永久精品| 国产日韩欧美精品在线| 日本网站在线观看一区二区三区| 91免费在线视频观看| 久久久精品免费观看| 免费高清在线一区| 日韩丝袜美女视频| 亚洲高清视频中文字幕| 一本大道久久a久久精二百| 中文字幕中文在线不卡住| 国产美女av一区二区三区| 精品毛片乱码1区2区3区| 天天免费综合色| 欧美日韩精品福利| 午夜精品一区二区三区电影天堂| 91久久精品一区二区| 亚洲国产视频a| 69堂成人精品免费视频| 日韩精品免费专区| 欧美精品 国产精品| 婷婷六月综合亚洲| 欧美大片在线观看一区二区| 国产一区二区三区黄视频| 精品日韩在线一区| 国产精品资源站在线| 一区在线中文字幕| 欧美午夜精品一区二区三区| 天天综合色天天综合色h| 欧美电影免费提供在线观看| 国产超碰在线一区| 亚洲精品国产无套在线观| 91精品国产高清一区二区三区蜜臀 | 日韩va欧美va亚洲va久久| 欧美男男青年gay1069videost| 日韩福利电影在线| 久久久五月婷婷| 色播五月激情综合网| 日韩电影在线观看一区| 26uuu精品一区二区三区四区在线| 成人av午夜影院| 日韩av一级电影| 中文字幕综合网| 日韩一区二区在线播放| 波多野结衣在线aⅴ中文字幕不卡| 一区二区三区久久| 久久久久久久久久看片|