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

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

?? iekc64_ser.h

?? 一個小的測試程序
?? H
字號:

#ifndef _SER_H_
#define _SER_H_

#include <csl_stdinc.h>
#include <csl_mcbsp.h>
#include <csl_edma.h>
#include "iekc64.h"
#include "iekc64_error.h"



#ifdef __cplusplus
extern "C" {
#endif

/*=======================================================================*//*!
\defgroup SER SER - Serial ports manager

	\brief This module provides an unified API for serial port : McBSP.

	<b> How does it work </b>

		The SER - MCBSP module acquires frame according to the configuration defined 
		in IEKC64_SER structure.
		
	<b> Openning the module</b>
		
		You open the module by calling the SER_open() function. This function
		initializes the hardware and the software with the parameters given in the
		IEKC64_SER structure that you must fill before the call.
		For MCBSP, the parameter FALSE for ConfigMode means that you will use default
		configuration structure provided by the library.
		The default configuration structure field description is:
		
		<small>
		
		SPCR  =
			\li MCBSP_SPCR_FREE_YES
			\li MCBSP_SPCR_SOFT_NO
			\li MCBSP_SPCR_FRST_NO
			\li MCBSP_SPCR_GRST_NO
			\li MCBSP_SPCR_XINTM_XRDY
			\li MCBSP_SPCR_XSYNCERR_NO
			\li MCBSP_SPCR_XRST_NO
			\li MCBSP_SPCR_DLB_OFF
			\li MCBSP_SPCR_RJUST_RZF
			\li MCBSP_SPCR_CLKSTP_DISABLE
			\li MCBSP_SPCR_DXENA_OFF
			\li MCBSP_SPCR_RINTM_RRDY
			\li MCBSP_SPCR_RSYNCERR_NO

		RCR   = 
	    	 
			\li MCBSP_RCR_RPHASE_SINGLE
			\li MCBSP_RCR_RFRLEN2_OF(0)
			\li MCBSP_RCR_RWDLEN2_8BIT //Don't care about, we don't use phase
			\li MCBSP_RCR_RCOMPAND_MSB
			\li MCBSP_RCR_RFIG_YES
			\li MCBSP_RCR_RDATDLY_1BIT
			\li MCBSP_RCR_RFRLEN1_OF(0)
			\li MCBSP_RCR_RWDLEN1_32BIT
			\li MCBSP_RCR_RWDREVRS_DISABLE
		
		XCR   =
			
			\li MCBSP_XCR_XPHASE_SINGLE			         
			\li MCBSP_XCR_XFRLEN2_OF(0)					 
			\li MCBSP_XCR_XWDLEN2_8BIT // Not using Phase 
			\li MCBSP_XCR_XCOMPAND_MSB					 
			\li MCBSP_XCR_XFIG_YES					 
			\li MCBSP_XCR_XDATDLY_1BIT					 
			\li MCBSP_XCR_XFRLEN1_OF(0)					 
			\li MCBSP_XCR_XWDLEN1_32BIT					 
			\li MCBSP_XCR_XWDREVRS_DISABLE
				     
		SRGR  =
			
			\li MCBSP_SRGR_GSYNC_FREE
			\li MCBSP_SRGR_CLKSP_RISING					 
			\li MCBSP_SRGR_CLKSM_INTERNAL					 
			\li MCBSP_SRGR_FSGM_DXR2XSR					 
			\li MCBSP_SRGR_FPER_OF(0)					 
			\li MCBSP_SRGR_FWID_OF(0)					 
			\li MCBSP_SRGR_CLKGDV_OF(7)
					 
		MCR   = MCBSP_MCR_OF(0)
			
		RCERE0 = MCBSP_RCERE0_DEFAULT
			
		RCERE1 = MCBSP_RCERE1_DEFAULT
			
		RCERE2 = MCBSP_RCERE2_DEFAULT
			
		RCERE3 = MCBSP_RCERE3_DEFAULT
			
		XCERE0 = MCBSP_XCERE0_DEFAULT
			
		XCERE1 = MCBSP_XCERE1_DEFAULT
			
		XCERE2 = MCBSP_XCERE2_DEFAULT
			
		XCERE3 = MCBSP_XCERE3_DEFAULT
			
	  	PCR	   =
	  		
			\li MCBSP_PCR_XIOEN_SP
			\li MCBSP_PCR_RIOEN_SP
			\li MCBSP_PCR_FSXM_INTERNAL
			\li MCBSP_PCR_FSRM_EXTERNAL
			\li MCBSP_PCR_CLKXM_OUTPUT
			\li MCBSP_PCR_CLKRM_INPUT
			\li MCBSP_PCR_CLKSSTAT_0
			\li MCBSP_PCR_DXSTAT_0
			\li MCBSP_PCR_FSXP_DEFAULT
			\li MCBSP_PCR_FSRP_ACTIVEHIGH
			\li MCBSP_PCR_CLKXP_RISING
			\li MCBSP_PCR_CLKRP_FALLING
			
		dwReceiveEdmaPri = EDMA_OPT_PRI_LOW
		
		dwTransmitEdmaPri =EDMA_OPT_PRI_LOW
		
		</small> 
		
	<b> Start serial acquisition/restitution </b>
	
		You start the module by calling the SER_start() function. This function
		starts EDMA and interrupt management.
		
	<b> Getting a frame</b>

		SER_receive() gives the next frame pointer from the input buffer.
		If no new frame is avalable, depending on the timeout value, you will
		get an error or wait until the timeout ends or a new frame is captured
	
	<b> Sending a frame</b>

		SER_send() sends the current frame pointer to output.
		
	<b> Stop MCBSP </b>

		SER_stop() will allow the serial acquisition/restitution to be paused. After a 
		SER_stop, acquisition/restitution can be re-started with the same parameters 
		with SER_start().
	
	<b> Close MCBSP </b>

		SER_free() closes all channel and interupt used with the MCBSP serial communication
					
   
</P>*//*==============================================================*//*@{*/

/*--------------------------------------------------------------------------*/
/*! Defines the MCBSP configuration used for acquisition and restitution 
*/
typedef struct
{
  /*! Serial port control register value */
  Uint32 spcr;
	/*! Receive control register value */
	Uint32 rcr;
	/*! Transmit control register value */
	Uint32 xcr;
	/*! Sample rate generator register value */
	Uint32 srgr;
	/*! Multichannel control register value */
	Uint32 mcr;
	/*! Enhanced receive channel 0 enable register value */
	Uint32 rcere0;
	/*! Enhanced receive channel 1 enable register value */
	Uint32 rcere1;
	/*! Enhanced receive channel 2 enable register value */
	Uint32 rcere2;
	/*! Enhanced receive channel 3 enable register value */
	Uint32 rcere3;
	/*! Enhanced transmit channel 0 enable register value */
	Uint32 xcere0;
	/*! Enhanced transmit channel 1 enable register value */
	Uint32 xcere1;
	/*! Enhanced transmit channel 2 enable register value */
	Uint32 xcere2;
	/*! Enhanced transmit channel 3 enable register value */
	Uint32 xcere3;
	/*! Pin control register value */
	Uint32 pcr;
	/*! This field defines to the receive EDMA priority */
  	Uint32 dwReceiveEdmaPri;
	/*! This field defines to the transmit EDMA priority */
	Uint32 dwTransmitEdmaPri;	
} IEKC64_SER_CONFIG;

/*--------------------------------------------------------------------------*/
/*! This varaible contains the SER default configuration
*/
extern const IEKC64_SER_CONFIG IEKC64_SER_CONFIG_DEFAULT;

/*--------------------------------------------------------------------------*/
/*! Defines the SERIAL configuration used for acquisition and restitution 
		All fields have to be set before the call.
*/
typedef struct
{
	/*! This field inform the board if you want a default configuration structure 
	    FALSE or	if you want to define your MCBSP configuration parameters 
	    via IEKC64_SER_CONFIG structure ( Config = TRUE)
	*/
	Uint8  ConfigMode;
	
	/*! This field holds the MCBSP configuration used for acquisition and restitution 
	*/
	IEKC64_SER_CONFIG McbspConfig;
} IEKC64_SER;

/*! Module error codes.<br>
	 If status returned from a module call is negative (or 
	 IEKC64_SUCCESS(return code) is false), the value represents an error
	 from the list below
*/
enum
{
  //! \ MCBSP initialization global error
  IEKC64_MCBSP_OPENFAIL					= IEKC64_ERR_CODE( IEKC64_VIDEO,  1 ),
  //! \ EDMA receive open fail 
  IEKC64_MCBSP_EDMA_CHA_REVT0_OPENFAIL	= IEKC64_ERR_CODE( IEKC64_VIDEO,  2 ),
  //! \ EDMA transmit open fail 
  IEKC64_MCBSP_EDMA_CHA_XEVT0_OPENFAIL	= IEKC64_ERR_CODE( IEKC64_VIDEO,  3 ),
  //! \ EDMA reload fail 
  IEKC64_MCBSP_EDMA_RLD_OPENFAIL		= IEKC64_ERR_CODE( IEKC64_VIDEO,  4 ),
  //! \ EDMA link open fail
  IEKC64_SER_UNKNOWN_LINK				= IEKC64_ERR_CODE( IEKC64_VIDEO,  5 ),
  //! \ EDMA transmit timeout
  IEKC64_RS422_XMT_TIMEOUT				= IEKC64_ERR_CODE( IEKC64_VIDEO,  6 ),
  //! \ EDMA receive timeout
  IEKC64_RS422_RCV_TIMEOUT				= IEKC64_ERR_CODE( IEKC64_VIDEO,  7 ),
  //! \ Bad TCC for EDMA
  IEKC64_ERR_SER_BADTCC					= IEKC64_ERR_CODE( IEKC64_VIDEO,  10 ),
  //! \ Cannot allocate semaphore
  IEKC64_ERR_SER_RCV_SEM				= IEKC64_ERR_CODE( IEKC64_VIDEO,  11 ),
  //! \ Cannot allocate semaphore
  IEKC64_ERR_SER_XMT_SEM				= IEKC64_ERR_CODE( IEKC64_VIDEO,  12 )
};

/*--------------------------------------------------------------------------*/
/*! Special timeout values for RS422 communication
*/
enum IEKC64_SER_WAIT
{
	//! Tell the API no to wait until the function is completed
	IEKC64_SER_NO_WAIT = 0,
	//! Tell the API to wait until the function completed
	IEKC64_SER_WAIT_INFINITE  
};

// function prototypes

/*--------------------------------------------------------------------------*/
/*! Initializes the SERIAL module
 

	\param pConfig
				Configuration struture 

	\return	An IEKC64_STATUS. If the call succeeds, the value will be IEKC64_OK.
				Otherwise it holds an error code. The status code can be tested by
				the IEKC64_SUCCESS(return code) macro that is true is the value
				represents a successful call.

	\b Example: 
	\verbatim
	IEKC64_SER config;
	IEKC64_STATUS	status;

	//board intialisation
	...
	
	// configure needed fields 
	config.McbspConfig = IEKC64_SER_CONFIG_DEFAULT;
	config.McbspConfig.dwReceiveEdmaPri = EDMA_OPT_PRI_LOW;
	config.McbspConfig.dwTransmitEdmaPri = EDMA_OPT_PRI_LOW;
	config.ConfigMode = FALSE;
	
	status = SER_open(&config);
	if (!IEKC64_SUCCESS(status))
	{
		printf("Can't open SER module\n");
	}

	\endverbatim
	
*/
IEKC64_STATUS SER_open(IEKC64_SER *pConfig);

/*--------------------------------------------------------------------------*/
/*! Starts the SERIAL module
 
	
	\return	An IEKC64_STATUS. If the call succeeds, the value will be IEKC64_OK.
				Otherwise it holds an error code. The status code can be tested by
				the IEKC64_SUCCESS(return code) macro that is true is the value
				represents a successful call.

*/
IEKC64_STATUS SER_start();


/*--------------------------------------------------------------------------*/
/*! Stops SERIAL module
 

	\return	An ATEME_STATUS. If the call succeeds, the value will be IEKC64_OK.
				Otherwise it holds an error code. The status code can be tested by
				the IEKC64_SUCCESS(return code) macro that is true is the value
				represents a successful call.
	
*/
IEKC64_STATUS SER_stop();

/*--------------------------------------------------------------------------*/
/*! Receives data with the SERIAL module

	\param pAddr
				A pointer to the next data to be acquired

	\param SizeofFrame
				Size of the frame to be acquired

	\param TimeOut
				Time out value

	\return	An IEKC64_STATUS. If the call succeeds, the value will be IEKC64_OK.
				Otherwise it holds an error code. The status code can be tested by
				the IEKC64_SUCCESS(return code) macro that is true is the value
				represents a successful call.

*/
IEKC64_STATUS SER_receive(Uint32* pAddr, Uint32 SizeofFrame, Uint32 TimeOut);

/*--------------------------------------------------------------------------*/
/*! Sends data with the SERIAL module

	\param pAddr
				A pointer to the data to be sent

	\param SizeofFrame
				Size of the frame to be sent

	\param TimeOut
				Time out value

	\return	An IEKC64_STATUS. If the call succeeds, the value will be IEKC64_OK.
				Otherwise it holds an error code. The status code can be tested by
				the IEKC64_SUCCESS(return code) macro that is true is the value
				represents a successful call.
	
*/
IEKC64_STATUS SER_send(Uint32 *pAddr, Uint32 SizeofFrame, Uint32 TimeOut);

/*--------------------------------------------------------------------------*/
/*! Waits end of previous transfert on the SERIAL module
 
	\param TimeOut
				Time out value

	\return	An IEKC64_STATUS. If the call succeeds, the value will be IEKC64_OK.
				Otherwise it holds an error code. The status code can be tested by
				the IEKC64_SUCCESS(return code) macro that is true is the value
				represents a successful call.
	
*/

/*@}*//* end of group SER */

#ifdef __cplusplus
}
#endif

#endif /* ifndef _IEK_SER_H_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆成人免费电影| 国产一区二区三区香蕉| 精品在线播放免费| 91麻豆免费看片| 日韩一区二区免费在线电影| 国产精品网曝门| 日本伊人精品一区二区三区观看方式| 国产999精品久久| 欧美一区二区国产| 亚洲第一狼人社区| 91福利精品视频| 国产精品久久久久久久第一福利| 久久国产精品99久久久久久老狼 | 国产精品久久久久久亚洲毛片 | 国产九色sp调教91| 7777精品伊人久久久大香线蕉| 国产精品久久久久影院色老大| 色婷婷av一区二区三区软件 | caoporm超碰国产精品| 久久丝袜美腿综合| 精品一二三四区| 中文字幕乱码久久午夜不卡| 国产精品123| 久久久久久久电影| 国内欧美视频一区二区| 精品日韩在线观看| 久久99精品久久久久久国产越南| 国产亚洲欧美中文| 成人在线综合网| 欧美国产一区二区在线观看 | 国产一区视频导航| 亚洲柠檬福利资源导航| 色综合久久久久综合体| 青青草97国产精品免费观看无弹窗版| 欧美日韩免费高清一区色橹橹 | 国产精品久久影院| 欧美理论在线播放| 日本不卡视频一二三区| 欧美国产一区二区在线观看| 5566中文字幕一区二区电影| 成人91在线观看| 一区二区三区欧美久久| 欧美日韩中文字幕一区二区| 极品少妇一区二区三区精品视频| 亚洲免费在线播放| 久久亚洲免费视频| 欧美精品亚洲一区二区在线播放| 成人午夜电影小说| 麻豆国产欧美日韩综合精品二区| 一区二区三区欧美视频| 国产欧美日韩另类一区| 色偷偷久久人人79超碰人人澡| 免费日本视频一区| 亚洲妇女屁股眼交7| 2021中文字幕一区亚洲| 欧美丝袜自拍制服另类| 美女视频一区在线观看| 亚洲精品美国一| 欧美一区欧美二区| 色先锋资源久久综合| 从欧美一区二区三区| 麻豆精品一二三| 三级欧美韩日大片在线看| 欧美精品一区二区三区四区| voyeur盗摄精品| 国产不卡视频在线播放| 久久成人麻豆午夜电影| 日本在线播放一区二区三区| 偷偷要91色婷婷| 国产精品久久久久影院亚瑟| 国产亚洲欧美一级| 国产欧美一区二区精品性色| 精品国产乱码久久久久久牛牛| 91麻豆精品国产自产在线| 欧美日韩在线免费视频| 在线免费视频一区二区| 黄色精品一二区| 精品一区二区三区欧美| 国内精品伊人久久久久av一坑| 久久国产精品色| 国内成人免费视频| 国产精品1区二区.| 成人av在线资源网站| 成人国产在线观看| 91日韩一区二区三区| 色av综合在线| 欧美视频在线不卡| 欧美日韩国产一二三| 在线播放国产精品二区一二区四区| 欧美日韩欧美一区二区| 9191国产精品| 日韩欧美在线网站| 久久久国产精品午夜一区ai换脸| 国产欧美一区视频| 亚洲色大成网站www久久九九| 久久―日本道色综合久久| 337p粉嫩大胆噜噜噜噜噜91av| 国产欧美一区二区三区在线老狼| 国产精品久久免费看| 一区二区三区在线观看视频| 亚洲成人综合网站| 精品一区二区在线免费观看| 激情六月婷婷综合| 成人av网站大全| 欧美色视频在线观看| 日韩欧美色综合网站| 欧美一二三区精品| 久久免费的精品国产v∧| 中文字幕一区二区三区av| 久久奇米777| 亚洲欧洲日产国码二区| 一区二区三区成人| 蜜乳av一区二区| 成人99免费视频| 69久久99精品久久久久婷婷| 国产香蕉久久精品综合网| 亚洲欧美偷拍另类a∨色屁股| 天堂va蜜桃一区二区三区 | 国产精品影音先锋| 欧美日韩亚洲综合在线| 久久综合久久综合久久综合| 亚洲女女做受ⅹxx高潮| 久久国产日韩欧美精品| 色一情一乱一乱一91av| 精品国产乱码久久| 亚洲综合一区二区精品导航| 亚洲欧美成aⅴ人在线观看| 丝袜美腿一区二区三区| 成人av在线一区二区三区| 欧美群妇大交群中文字幕| 日本一区二区三区四区在线视频 | 丝袜美腿一区二区三区| 成人aaaa免费全部观看| 精品少妇一区二区三区视频免付费 | 六月丁香综合在线视频| 一本高清dvd不卡在线观看| 精品国产乱子伦一区| 亚洲福利视频一区二区| 99久久婷婷国产综合精品电影 | 国内成人免费视频| 欧美伦理电影网| 亚洲欧洲日韩av| 国产成人亚洲综合a∨婷婷| 777a∨成人精品桃花网| 亚洲日本丝袜连裤袜办公室| 国产精品一区在线| 日韩欧美中文字幕公布| 亚洲午夜在线视频| 91色.com| 国产精品美日韩| 韩国女主播成人在线观看| 欧美欧美午夜aⅴ在线观看| 亚洲免费观看高清完整版在线 | 亚洲无人区一区| 99久久国产综合精品麻豆| 久久女同互慰一区二区三区| 捆绑调教美女网站视频一区| 欧美日韩五月天| 一区二区三区四区在线播放| 成人app网站| 国产精品久久久久久久第一福利| 国产激情精品久久久第一区二区| 精品国产伦一区二区三区观看体验| 日韩av电影免费观看高清完整版在线观看 | 日韩欧美亚洲国产另类| 日本不卡一区二区| 欧美一卡二卡三卡| 日本欧美久久久久免费播放网| 欧美高清视频www夜色资源网| 一级女性全黄久久生活片免费| 92国产精品观看| 日韩毛片视频在线看| 91老师国产黑色丝袜在线| 最新高清无码专区| 91久久一区二区| 一区二区三区91| 欧美日韩电影一区| 日本亚洲免费观看| 精品国产在天天线2019| 国产一区啦啦啦在线观看| 久久久青草青青国产亚洲免观| 国产高清成人在线| 国产精品麻豆视频| 色中色一区二区| 亚洲成人一区二区在线观看| 欧美一卡2卡3卡4卡| 精品在线播放免费| 国产精品国产三级国产普通话三级 | 欧美一区二区不卡视频| 精品一二线国产| 国产精品萝li| 欧美日韩卡一卡二| 精品午夜久久福利影院| 日本一区二区高清| 在线观看不卡一区| 狠狠v欧美v日韩v亚洲ⅴ| 欧美国产精品久久| 欧美日韩视频不卡| 国产一区二区三区香蕉| 成人免费在线播放视频|