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

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

?? syshal.c

?? UCOSII的移植試驗 3.5_Modbus RTU 主從通訊實驗
?? C
字號:
/****************************************Copyright (c)**************************************************
**                                  廣州致遠電子有限公司
**
**                                 http://www.21cm.com.cn
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: syshal.c
**創   建   人: 周立山
**最后修改日期: 2006年2月23日
**描        述: Modbus基于MagicARM2410低層驅動移植文件。
**                
**--------------歷史版本信息----------------------------------------------------------------------------
** 創建人: 
** 版  本: 
** 日 期: 
** 描 述: 
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "config.h"

/**********************************
** RS485 收發初始化
***********************************/
#define RS_485_S_R		13							// 485發送與接收控制引腳,初始化GPIO
#define RS_485_INI()	rGPECON = (rGPECON & (~(0x03<<26))) | (0x01<<26);
						
		
#define RS_485_S()		rGPEDAT |= (1<<RS_485_S_R);		// 485發送使能
#define RS_485_R()		rGPEDAT &= ~(1<<RS_485_S_R);	// 485接收使能

/*********************************************************************************************************
** Function name: SendResponse
** Descriptions:  發送幀函數為底層字符發送處理函數,ZLG/MODBUS RTU協議棧中使用該函數發送幀數據。
** Input: buff,字符串指針,類型:unsigned char
**        len,字符長度,類型:unsigned short     
** Output:        無
** Created by:    周立山
** Created Date:  2006-02-21
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void SendResponse(uint8 *buff,uint16 len)
{
	uint16 i,k;
	RS_485_S();						// RS485發送使能

	for(k=0;k<len;k++)
	{
	  while(!(rUTRSTAT1 & 0x02));	// 等待發送器THR為空
   	  for(i=0; i<10; i++);
   	  rUTXH1 = buff[k];				// 發送數據
   	  while(!(rUTRSTAT1 & 0x02));	// 等待發送器THR為空
	}
	while(!(rUTRSTAT1 & 0x04));		// 等待發送器THR為空
	RS_485_R();						// RS485接收使能
}

#define TIMERS_UP_MAK  (~0x222202)

/*********************************************************************************************************
** Function name: StartCountT15
** Descriptions:  使能T1.5計數。T1.5的時間值為UART傳輸1.5個字符的時間。
**			      注意:該函數只是使能計時,不允許在函數中產生任何延時。
**			            如果T1.5時間結束執行T15EndHandle函數。
** Input:無       
** Output:        無
** Created by:    周立山
** Created Date:  2006-02-21
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void StartCountT15(void)
{
	uint32 temp = rTCON& TIMERS_UP_MAK;
	rTCNTB2 = 75;				// 定時750 us

	rTCON = temp|(1<<13);		// 更新定時器數據		
	rTCON = temp|(1<<12);		// 啟動定時器

}


/*********************************************************************************************************
** Function name: StartCountT35
** Descriptions:  使能T3.5計數。T3.5的時間值為UART傳輸3.5個字符的時間。
**			      注意:該函數只是使能計時,不允許在函數中產生任何延時。
**			             如果T3.5時間結束執行T35EndHandle函數。
** Input:無       
** Output:        無
** Created by:    周立山
** Created Date:  2006-02-21
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void StartCountT35(void)
{
	uint32 temp = rTCON & TIMERS_UP_MAK;
	rTCNTB3 = 750;				// 定時1750 us
	
	rTCON = temp|(1<<17);		// 更新定時器數據		
	rTCON = temp|(1<<16);		// 啟動定時器
	
}


/*********************************************************************************************************
** Function name: Start10mS
** Descriptions:  10mS開始計數,只在Modbus主機使用,從機不使用該中斷。該定時器需要自動加載。
** Input:無       
** Output:        無
** Created by:    周立山
** Created Date:  2006-02-21
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Start10mS(void)
{
	uint32 temp = rTCON& TIMERS_UP_MAK;
	rTCNTB4 = 1000;						// 定時10000 us
	
	rTCON = temp|(1<<21);				// 更新定時器數據		
	rTCON = temp|(1<<20)|(1<<22);		// 啟動定時器

}


/*********************************************************************************************************
** Function name: T15_Exception
** Descriptions:  T15定時中斷處理
** Input:無       
** Output:        無
** Created by:    周立山
** Created Date:  2006-02-21
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
 void T15_Exception(void)
{
    rSRCPND = BIT_TIMER2;       //Clear pending bit
    rINTPND = BIT_TIMER2;
    rINTPND;                    //Prevent an double interrupt pending
	
	T15EndHandle();
	rTCON &= ~(1<<12);		// 關定時器
}

/*********************************************************************************************************
** Function name: T35_Exception
** Descriptions:  T35定時中斷處理
** Input:無       
** Output:        無
** Created by:    周立山
** Created Date:  2006-02-21
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
 void T35_Exception(void)
{
    rSRCPND = BIT_TIMER3;       //Clear pending bit
    rINTPND = BIT_TIMER3;
    rINTPND;                    //Prevent an double interrupt pending

	T35EndHandle();
	rTCON &= ~(1<<16);		// 關定時器
}

/*********************************************************************************************************
** Function name: T10ms_Exception
** Descriptions:  T10ms定時中斷處理
** Input:無       
** Output:        無
** Created by:    周立山
** Created Date:  2006-02-21
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
 void T10ms_Exception(void)
{
        
    rSRCPND = BIT_TIMER4;       //Clear pending bit
    rINTPND = BIT_TIMER4;
    rINTPND;                    //Prevent an double interrupt pending

		Time10mSHandle();

}


/*********************************************************************************************************
** Function name: Time1Init
** Descriptions:  定時器初始化函數,系統啟動時調用該函數初始化定時器。
** Input:無       
** Output:        無
** Created by:    周立山
** Created Date:  2006-02-21
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void TimersInit(void)
{ 
	// Fclk=200MHz,Pclk=50MHz。
	// 定時器的記數單位為1微秒
	rTCFG0 &=~(0xff<<8);
	rTCFG0 |= 250<<8;			// 預分頻器0設置為250,取得200KHz
	rTCFG1 &= ~(0xf<<8);		// TIMER2再取1/2分頻,取得100KHz
	rTCFG1 &= ~(0xf<<12);		// TIMER3再取1/2分頻,取得100KHz
	rTCFG1 &= ~(0xf<<16);		// TIMER4再取1/2分頻,取得100KHz

	rTCON &= ~(0x7ff<<12);		// 初始化定時器2、3、4的控制位,全為零
}



/*********************************************************************************************************
** Function name: UART1_Exception
** Descriptions:  串口中斷處理函數
** Input:無       
** Output:        無
** Created by:    周立山
** Created Date:  2006-02-21
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void  UART1_Exception(void)
{
	rINTSUBMSK|=(BIT_SUB_RXD1|BIT_SUB_ERR1);

	if(rUTRSTAT1 & 0x01)			
	{

		ReceOneChar(rURXH1);		// 調用MODBUS接收字符函數,;
	}

 	ClearPending(BIT_UART1);
   rSUBSRCPND =(BIT_SUB_RXD1|BIT_SUB_ERR1);
   rINTSUBMSK &=~(BIT_SUB_RXD1|BIT_SUB_ERR1);
    
}



/*********************************************************************************************************
** Function name: IniUART1
** Descriptions:  串口初始化。系統起動時調用該函數初始化串口
** Input:	bps ,串口波特率    
** Output:        無
** Created by:    周立山
** Created Date:  2006-02-21
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void IniUART1(uint32 bps)
{  	
	RS_485_INI();
	// IO口設置 (GPH5,GPH4)
	rGPHUP = rGPHUP | (0x03<<4);
	rGPHCON = (rGPHCON & (~0x00000F00)) | (0x00000A00);	
	
	// 串口模式設置
	rUFCON1 = 0x00;   	// 禁止FIFO功能
	rUMCON1 = 0x00;   	// AFC(流控制)禁能
	rULCON1 = 0x07; 	// 禁止IRDA,無奇偶校驗,2位停止位,8位數據位
	rUCON1  = 0x105; 	// 使用PCLK來生成波特率,發送中斷為電平觸發模式,接收中斷為邊沿觸發模式,
	                    // 禁止接收超時中斷,使能接收錯誤中斷,正常工作模式,中斷或查詢方式(非DMA)	
	// 串口波特率設置
	rUBRDIV1=(int)(PCLK/16.0/bps + 0.5) -1; 

} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品色呦呦| 亚洲国产成人va在线观看天堂| 91搞黄在线观看| 成人丝袜高跟foot| 亚洲大片一区二区三区| 久久久久久亚洲综合影院红桃| 欧美视频一区二| 91影视在线播放| 国产成人午夜99999| 麻豆精品蜜桃视频网站| 五月天久久比比资源色| 夜夜夜精品看看| 中文字幕一区在线观看| 国产视频一区二区在线| 日韩久久免费av| 337p亚洲精品色噜噜噜| 欧美在线一区二区三区| 99re亚洲国产精品| 国产一区不卡视频| 激情五月激情综合网| 奇米影视在线99精品| 五月天网站亚洲| 亚洲二区在线视频| 亚洲最大成人网4388xx| 亚洲色图在线视频| 一区精品在线播放| 日韩一区欧美一区| 18成人在线视频| 亚洲欧洲精品天堂一级| 国产精品久久久久久久久果冻传媒| 26uuu国产一区二区三区 | 欧美日韩的一区二区| 色婷婷综合在线| 色综合久久99| 色呦呦一区二区三区| 91香蕉视频mp4| 91福利在线免费观看| 欧美性色aⅴ视频一区日韩精品| 欧美中文一区二区三区| 欧美性videosxxxxx| 欧美色图第一页| 7777精品伊人久久久大香线蕉的 | 久久精品亚洲麻豆av一区二区 | 奇米精品一区二区三区在线观看一| 亚洲一线二线三线久久久| 亚洲v中文字幕| 天天综合日日夜夜精品| 免费三级欧美电影| 国产一区二区三区黄视频| 风间由美性色一区二区三区| 不卡一区二区在线| 色狠狠一区二区三区香蕉| 欧美日本高清视频在线观看| 日韩免费成人网| 国产女同互慰高潮91漫画| 亚洲色图一区二区三区| 亚洲r级在线视频| 精品系列免费在线观看| 国产a精品视频| 色综合久久久网| 欧美日韩高清一区二区不卡 | 国产免费观看久久| 午夜视频在线观看一区二区| 亚洲综合清纯丝袜自拍| 久久精品理论片| av午夜精品一区二区三区| 欧美亚洲免费在线一区| 日韩天堂在线观看| 国产亚洲欧美日韩在线一区| 亚洲裸体xxx| 日韩av电影天堂| 国产成人精品免费看| 91电影在线观看| 精品国产制服丝袜高跟| 亚洲欧美日韩系列| 日本中文一区二区三区| 国产一区二区三区蝌蚪| 91国产免费观看| 久久久久高清精品| 一区二区久久久久| 精品亚洲欧美一区| 欧美性极品少妇| 国产午夜三级一区二区三| 亚洲一区二区三区不卡国产欧美 | 国产精品99久久不卡二区| 91蜜桃视频在线| 欧美成人三级在线| 亚洲欧美日韩国产中文在线| 欧美a一区二区| 一本久久a久久精品亚洲| 欧美一区二区精品| 亚洲欧美激情插| 国产精品一区专区| 在线播放中文一区| 亚洲天堂中文字幕| 国产一区二区剧情av在线| 欧洲日韩一区二区三区| 中文字幕精品三区| 国内欧美视频一区二区| 在线一区二区三区| 国产精品美女久久久久久| 久久99精品久久久久久久久久久久| 99久久99久久综合| 欧美极品另类videosde| 蜜桃久久av一区| 欧美色男人天堂| 亚洲视频网在线直播| 国产精品亚洲专一区二区三区 | 亚洲精品一区二区三区影院| 亚洲尤物视频在线| 91蝌蚪国产九色| 欧美精彩视频一区二区三区| 精品一区二区国语对白| 91.com在线观看| 亚洲激情男女视频| av资源网一区| 国产精品不卡一区| 成人avav影音| 国产精品不卡在线观看| 欧美视频完全免费看| 最新国产成人在线观看| 国产成人激情av| 久久精品人人做人人综合| 久99久精品视频免费观看| 9191精品国产综合久久久久久| 一区二区免费视频| 欧美网站一区二区| 亚洲一区二区三区爽爽爽爽爽| 日本道免费精品一区二区三区| 国产精品久久久一区麻豆最新章节| 国产精品亚洲一区二区三区妖精| 久久人人爽爽爽人久久久| 韩国女主播一区| 久久久午夜电影| 丁香啪啪综合成人亚洲小说| 中文成人综合网| bt欧美亚洲午夜电影天堂| 亚洲丝袜制服诱惑| 欧美专区在线观看一区| 亚洲一区二区三区四区五区黄| 欧美偷拍一区二区| 秋霞影院一区二区| 69堂亚洲精品首页| 精久久久久久久久久久| 久久久久久一级片| www.av亚洲| 亚洲老司机在线| 精品视频一区三区九区| 秋霞午夜鲁丝一区二区老狼| 亚洲精品在线观看网站| av中文一区二区三区| 亚洲一区二区三区爽爽爽爽爽| 91精品欧美久久久久久动漫 | 国产在线播精品第三| 亚洲国产精品精华液2区45| 91在线国产福利| 亚洲高清中文字幕| 欧美成人精品1314www| 国产精品亚洲一区二区三区妖精| 18成人在线观看| 51精品秘密在线观看| 成人永久免费视频| 亚洲一区二区三区视频在线播放 | 欧美色老头old∨ideo| 久久99久久精品欧美| 久久久久久黄色| 91电影在线观看| 国产一区二区三区免费在线观看 | 亚洲视频在线观看三级| 欧美日韩国产精选| 国产精品中文欧美| 亚洲精品自拍动漫在线| 精品日韩一区二区三区| 99国产精品久久| 麻豆精品视频在线观看视频| 国产精品久久久久久久久图文区 | 亚洲精品欧美专区| 91麻豆精品国产91久久久资源速度 | 成人晚上爱看视频| 婷婷成人激情在线网| 亚洲国产精品精华液2区45| 欧美美女一区二区在线观看| 国产成人免费9x9x人网站视频| 一区二区欧美视频| 欧美韩国日本一区| 日韩一区二区三区在线| 91麻豆免费观看| 国内精品视频一区二区三区八戒| 亚洲精品五月天| 国产欧美精品一区二区色综合朱莉 | 中文字幕欧美国产| 欧美一区二区三区男人的天堂| 91片黄在线观看| 国产成人免费在线视频| 日韩—二三区免费观看av| 亚洲区小说区图片区qvod| 久久色在线视频| 欧美人伦禁忌dvd放荡欲情| 99在线精品观看| 国产老女人精品毛片久久|