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

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

?? canfunc.c

?? Can總線的控制協議
?? C
?? 第 1 頁 / 共 2 頁
字號:
*********************************************************************************************************
**函數原型	;	void AFSetMode(INT32U mode)
**參數說明	;	mode -->> 驗收過濾控制器的模式
**							Bypass =  1
**							normal =  2
**							fullCAN = 3
**							Ignored = 4
**返回值	:	
**
**說明		:	驗收控制寄存器的設置函數						  
*********************************************************************************************************
*/
void AFSetMode(INT32U mode)
{
	uCANAFMR afmr;
	afmr.Word = 0;					// initial value!!!

	switch(mode)
	{
	case 1:
		afmr.Bits.AccBP = 1;	// Bypass mode
		break;
	case 2:
		//..						// normal filter
		break;
	case 3:
		afmr.Bits.eFCAN = 1;	// fullCAN mode
		break;
	default:
		afmr.Bits.AccBP = 0;
		afmr.Bits.AccOff = 1;	// all message on CAN buses are ignored
		break;
	}

	CANAFMR = afmr.Word;
}
/*
************************************************************************************************************
**函數原型	:	INT32U AFBuildLUT (INT32U FCAN_nCell,
**								   INT32U SFF_INDV_nCell,
**								   INT32U SFF_GRP_nCell,
**								   INT32U EFF_INDV_nCell,
**								   INT32U EFF_GRP_nCell)
**參數說明	:	FCAN_nCell_Num -->>	FullCAN標準幀濾波單元個數
**				SFF_INDV_nCell_Num -->>	單個標準幀濾波單元個數
**				SFF_GRP_nCell_Num -->>	標準幀范圍濾波單元個數
**				EFF_INDV_nCell_Num -->> 單個擴展幀濾波單元個數
**				EFF_GRP_nCell_Num -->>	擴展幀范圍濾波單元個數
**
**返回值	:   LUT_SETTING_OK 			= 0,
**				TOTAL_SIZE_TOO_LARGE 	= 1,
**				EFF_GRP_SIZE_INVALID	= 3,
**				FCAN_STORE_SIZE_INVALID = 4,
**
**說明		:	驗收過濾寄存器的初始化函數
************************************************************************************************************
*/
INT32U AFBuildLUT( INT32U FCAN_nCell_Num,INT32U SFF_INDV_nCell_Num,
				   INT32U SFF_GRP_nCell_Num,INT32U EFF_INDV_nCell_Num,
				   INT32U EFF_GRP_nCell_Num)
{
	INT32U	i;
	uCANAFMR afmr;
	INT32U tmpREGSFF_sa,tmpREGSFF_GRP_sa,tmpREGEFF_sa;
	INT32U tmpREGEFF_GRP_sa,tmpREGENDofTable;
	INT32U *pU32 = (INT32U *)(CANAFRAM_BADR);
	
	if(4 * (FCAN_nCell_Num + SFF_INDV_nCell_Num + SFF_GRP_nCell_Num + EFF_INDV_nCell_Num + EFF_GRP_nCell_Num) > 0x800)
		return TOTAL_SIZE_TOO_LARGE;

	if((EFF_GRP_nCell_Num % 2) != 0)
		return EFF_GRP_SIZE_INVALID;
	
	tmpREGSFF_sa 		= FCAN_nCell_Num * 4; 
	tmpREGSFF_GRP_sa 	= tmpREGSFF_sa + (SFF_INDV_nCell_Num * 4);
	tmpREGEFF_sa 		= tmpREGSFF_GRP_sa + (SFF_GRP_nCell_Num * 4);
	tmpREGEFF_GRP_sa 	= tmpREGEFF_sa + (EFF_INDV_nCell_Num * 4);
	tmpREGENDofTable 	= tmpREGEFF_GRP_sa + (EFF_GRP_nCell_Num * 4);
	
	afmr.Word = 0;
	afmr.Bits.AccBP = 1;
	CANAFMR = afmr.Word;

	if((0x800 - tmpREGSFF_sa * 6) < tmpREGENDofTable)
	{
		return FCAN_STORE_SIZE_INVALID;
	}

	
	for(i=0;i<(0x800/4);i++)
	{
		*(pU32 + i) = -1;		// disable all AF cell
	}
	CANSFF_sa		= tmpREGSFF_sa;
	CANSFF_GRP_sa	= tmpREGSFF_GRP_sa;
	CANEFF_sa		= tmpREGEFF_sa;
	CANEFF_GRP_sa 	= tmpREGEFF_GRP_sa;
	CANENDofTable 	= tmpREGENDofTable;
	
	return LUT_SETTING_OK;
}
/*
*********************************************************************************************************
**函數原型	;	INT32U AFInitFCANTab(stcAF_SFF_CELL *pTab,INT32U nCell)
**參數說明	;	pTab -->>	FullCAN 標準幀ID結構數組
**			:	nCell -->>	Cell的個數
**
**返回值	:	LUT_SETTING_OK 	= 0,
**				TABLE_CELL_TOO_LARGE	= 5,
**
**說明		:	FullCAN標準幀表格的初始化
*********************************************************************************************************
*/
INT32U AFInitFCANTab(stcAF_SFF_CELL *pTab,INT32U nCell)
{
	uCANAFMR afmr;
	INT32U bakAfmr;
	INT32U i;
	
	stcAF_SFF_CELL mask = {-1,-1,-1,-1,-1,-1,-1,-1};
	stcAF_SFF_CELL *pU32 = (stcAF_SFF_CELL *)(CANAFRAM_BADR);
	
	if(nCell > (CANSFF_sa / 4))
		return TABLE_CELL_TOO_LARGE;

	afmr.Word = CANAFMR;
	bakAfmr = afmr.Word;
	afmr.Bits.AccBP = 1;
	CANAFMR = afmr.Word;

	
	for(i=0;i<(CANSFF_GRP_sa/4);i++)
	{
		*(pU32 + i) = mask;			// disable all AF cell
	}

	for(i=0;i<nCell;i++)
	{
		*(pU32 + i) = *(pTab+i);	// set filter cell
	}
	
	CANAFMR = bakAfmr;
	
	return LUT_SETTING_OK;
}
/*
*********************************************************************************************************
**函數原型	;	INT32U AFInitSFFIndvTab(stcAF_SFF_CELL *pTab,INT32U nCell)
**參數說明	;	pTab -->>	標準幀ID結構數組
**			:	nCell -->>	Cell的個數
**
**返回值	:	LUT_SETTING_OK 	= 0,
**				TABLE_CELL_TOO_LARGE	= 5,
**
**說明		:	單獨標準幀表格的初始化
*********************************************************************************************************
*/
INT32U AFInitSFFIndvTab(stcAF_SFF_CELL *pTab,INT32U nCell)
{
	INT32U i;
	uCANAFMR afmr;
	INT32U bakAfmr;
	stcAF_SFF_CELL *pU32 = (stcAF_SFF_CELL *)((INT32U)CANAFRAM_BADR + (INT32U)(CANSFF_sa));
	stcAF_SFF_CELL mask = {-1,-1,-1,-1,-1,-1,-1,-1};
	
	if(nCell > ((CANSFF_GRP_sa-CANSFF_sa) / 4))
		return TABLE_CELL_TOO_LARGE;

	afmr.Word = CANAFMR;
	bakAfmr = afmr.Word;
	afmr.Bits.AccBP = 1;
	CANAFMR = afmr.Word;

	for(i=0;i<((CANSFF_GRP_sa-CANSFF_sa)/4);i++)
	{
		*(pU32 + i) = mask;			// disable all AF cell
	}

	for(i=0;i<nCell;i++)
	{
		*(pU32 + i) = *(pTab+i);	// set filter cell
	}
	
	CANAFMR = bakAfmr;
	
	return LUT_SETTING_OK;
}
/*
*********************************************************************************************************
**函數原型	;	INT32U AFInitSFFGrpTab(_AF_SFF_CELL *pTab,UINT32 nCell)
**參數說明	;	pTab -->>	標準幀ID結構數組
**			:	nCell -->>	Cell的個數
**
**返回值	:	LUT_SETTING_OK 	= 0,
**				TABLE_CELL_TOO_LARGE	= 5,
**
**說明		:	標準幀范圍表格的初始化
*********************************************************************************************************
*/
INT32U AFInitSFFGrpTab(stcAF_SFF_CELL *pTab,INT32U nCell)
{
	INT32U	i;
	uCANAFMR afmr;
	INT32U bakAfmr;
	stcAF_SFF_CELL mask = {-1,-1,-1,-1,-1,-1,-1,-1};
	stcAF_SFF_CELL *pU32 = (stcAF_SFF_CELL *)((INT32U)CANAFRAM_BADR + (INT32U)(CANSFF_GRP_sa));
	
	if(nCell > ((CANEFF_sa - CANSFF_GRP_sa) / 4))
		return TABLE_CELL_TOO_LARGE;

	afmr.Word = CANAFMR;
	bakAfmr = afmr.Word;
	afmr.Bits.AccBP = 1;
	CANAFMR = afmr.Word;

	for(i=0;i<((CANEFF_sa - CANSFF_GRP_sa)/4);i++)
	{
		*(pU32 + i) = mask;			// disable all AF cell
	}

	for(i=0;i<nCell;i++)
	{
		*(pU32 + i) = *(pTab+i);	// set filter cell
	}
	
	CANAFMR = bakAfmr;
	return LUT_SETTING_OK;
}
/*
*********************************************************************************************************
**函數原型	;	INT32U AFInitEFFIndvTab(stcAF_EFF_CELL *pTab,INT32U nCell)
**參數說明	;	pTab -->>	擴展幀ID結構數組
**			:	nCell -->>	Cell的個數
**
**返回值	:	LUT_SETTING_OK 	= 0,
**				TABLE_CELL_TOO_LARGE	= 5,
**
**說明		:	單獨擴展幀表格的初始化
*********************************************************************************************************
*/
INT32U AFInitEFFIndvTab(stcAF_EFF_CELL *pTab,INT32U nCell)
{
	INT32U		i;
	uCANAFMR	afmr;
	INT32U		bakAfmr;
	stcAF_EFF_CELL mask = {-1,-1};
	stcAF_EFF_CELL *pU32 = (stcAF_EFF_CELL *)((INT32U)CANAFRAM_BADR + (INT32U)(CANEFF_sa));
	
	if(nCell > ((CANEFF_GRP_sa-CANEFF_sa) / 4))
		return TABLE_CELL_TOO_LARGE;
	afmr.Word = CANAFMR;
	bakAfmr = afmr.Word;
	afmr.Bits.AccBP = 1;
	CANAFMR = afmr.Word;

	for(i=0;i<((CANEFF_GRP_sa-CANEFF_sa)/4);i++)
	{
		*(pU32 + i) = mask;			// disable all AF cell
	}

	for(i=0;i<nCell;i++)
	{
		*(pU32 + i) = *(pTab+i);	// set filter cell
	}
	
	CANAFMR = bakAfmr;
	
	return LUT_SETTING_OK;
}
/*
*********************************************************************************************************
**函數原型	;	INT32U AFInitEFFGrpTab(stcAF_EFF_CELL *pTab,INT32U nCell)
**參數說明	;	pTab -->>	擴展幀ID結構數組
**			:	nCell -->>	Cell的個數
**
**返回值	:	LUT_SETTING_OK 	= 0,
**				TABLE_CELL_TOO_LARGE	= 5,
**				CELL_NUM_INVALID		= 6,
**
**說明		:	擴展幀范圍表格的初始化
*********************************************************************************************************
*/
INT32U AFInitEFFGrpTab(stcAF_EFF_CELL *pTab,INT32U nCell)
{
	INT32U		i;
	uCANAFMR 	afmr;
	INT32U 		bakAfmr;
	stcAF_EFF_CELL mask = {-1,-1};
	stcAF_EFF_CELL *pU32 = (stcAF_EFF_CELL *)((INT32U)CANAFRAM_BADR + (INT32U)(CANEFF_GRP_sa));
	
	if((nCell % 2) != 0)
		return CELL_NUM_INVALID;
	if(nCell > ((CANENDofTable- CANEFF_GRP_sa) / 4))
		return TABLE_CELL_TOO_LARGE;
	afmr.Word = CANAFMR;
	bakAfmr = afmr.Word;
	afmr.Bits.AccBP = 1;
	CANAFMR = afmr.Word;
	
	for(i=0;i<((CANENDofTable- CANEFF_GRP_sa)/4);i++)
	{
		*(pU32 + i) = mask;			// disable all AF cell
	}

	for(i=0;i<nCell;i++)
	{
		*(pU32 + i) = *(pTab+i);	// set filter cell
	}
	
	CANAFMR = bakAfmr;
	
	return LUT_SETTING_OK;
}
/*
*********************************************************************************************************
**函數原型	;	INT32U AFReadFCANRxResurt(_AF_AUTOSTORE_MSG *pMsg,UINT32 IdIndex)
**參數說明	;	pMsg -->>	FullCAN中自動保存的信息的ID結構
**			:	nCell -->>	FullCAN自動接收完畢后生成的索引		  
*********************************************************************************************************
*/
INT32U AFReadFCANRxResurt(stcAF_AUTOSTORE_MSG *pMsg,INT32U IdIndex)
{
	INT32U state = -1;
	stcAF_AUTOSTORE_MSG *pTmp;
	pTmp = (stcAF_AUTOSTORE_MSG *)((INT32U)CANAFRAM_BADR + (INT32U)CANENDofTable + (INT32U)(IdIndex * 12));

	if(pTmp->Head.SEM == 0x03)		//SEM = 11(b)
	{
		pTmp->Head.SEM = 0x00;		// set flag to begin read message...
		*pMsg = *pTmp;
		if(pTmp->Head.SEM != 0x00)	// flag check...
			state = 1;	//update continue...
		else
			state = 2;	//get a correct message!
	}
	else
		state = 0;		//not any update after last access.
	return state;
}

/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久久久久99| 色综合天天性综合| 欧美视频你懂的| 一区二区三区精品在线| av中文字幕亚洲| 东方aⅴ免费观看久久av| 亚洲国产成人在线| 国产成人在线视频网址| 久久精品人人爽人人爽| 成人91在线观看| 一区二区三区视频在线看| 在线亚洲免费视频| 日本少妇一区二区| 欧美激情在线一区二区三区| 成人午夜av影视| 亚洲欧美韩国综合色| 欧美日韩黄色一区二区| 美女视频一区二区三区| 中文字幕+乱码+中文字幕一区| 成人国产亚洲欧美成人综合网 | 亚洲地区一二三色| 欧美日韩aaaaa| 国产自产2019最新不卡| 亚洲婷婷综合色高清在线| 欧美日韩小视频| 狠狠色狠狠色合久久伊人| 国产精品免费视频观看| 欧美喷水一区二区| 粉嫩嫩av羞羞动漫久久久| 亚洲综合图片区| 久久综合久久综合久久| 色婷婷精品久久二区二区蜜臀av| 日韩高清不卡在线| 中文字幕第一区二区| 欧美一级欧美一级在线播放| 成人亚洲一区二区一| 亚洲444eee在线观看| 日本一区二区三区在线观看| 欧美日韩国产综合草草| 豆国产96在线|亚洲| 午夜在线电影亚洲一区| 国产丝袜欧美中文另类| 欧美女孩性生活视频| 99视频一区二区三区| 韩国成人在线视频| 亚洲成av人片www| 中文字幕亚洲不卡| 26uuu亚洲综合色欧美| 欧美日韩美少妇| 91丨国产丨九色丨pron| 国产一区二区三区日韩| 日韩中文字幕一区二区三区| 亚洲天堂精品在线观看| 久久噜噜亚洲综合| 日韩精品一区二区三区中文精品| 在线精品亚洲一区二区不卡| 国产成人免费视频网站高清观看视频 | 成人av资源下载| 久久91精品国产91久久小草 | 亚洲欧美国产三级| 国产婷婷色一区二区三区四区 | 欧美—级在线免费片| 日韩一区二区三| 欧美日韩国产a| 91黄色免费版| 色呦呦网站一区| 91亚洲大成网污www| 国产91丝袜在线播放0| 狠狠色丁香婷婷综合久久片| 日本中文字幕一区二区视频| 亚洲一区二区在线观看视频| 国产精品二区一区二区aⅴ污介绍| 精品毛片乱码1区2区3区| 精品视频在线视频| 欧美日韩中字一区| 欧美日韩国产一级片| 欧美日韩你懂得| 欧美日韩国产片| 欧美日韩国产影片| 7777精品久久久大香线蕉 | 91精品国产一区二区三区蜜臀| 欧美性xxxxxx少妇| 欧美三级中文字幕| 欧美日韩国产美| 欧美精品色综合| 91精选在线观看| 日韩欧美国产麻豆| 精品国产亚洲在线| 国产日韩欧美电影| 国产精品国产三级国产三级人妇| 国产精品电影院| 一区二区三区日韩精品视频| 亚洲激情六月丁香| 视频在线在亚洲| 免费欧美日韩国产三级电影| 精品系列免费在线观看| 国产精品1区2区| av激情亚洲男人天堂| 色天天综合色天天久久| 欧美午夜精品久久久久久超碰| 欧美日本在线看| 久久精品水蜜桃av综合天堂| 亚洲国产精品v| 亚洲一区二区三区四区在线 | 丁香激情综合五月| 色婷婷av一区二区三区软件| 欧美日韩一区中文字幕| 日韩欧美成人一区| 中文字幕一区二区三区精华液 | 日韩激情中文字幕| 国产伦精品一区二区三区视频青涩| 国产aⅴ精品一区二区三区色成熟| 成人黄色软件下载| 91精品一区二区三区久久久久久 | 亚洲动漫第一页| 久久99精品国产麻豆婷婷| av男人天堂一区| 欧美一级xxx| 国产精品毛片a∨一区二区三区| 亚洲国产一区二区视频| 国产最新精品免费| 在线精品视频免费播放| 精品国产免费一区二区三区四区| 国产精品国产自产拍高清av| 日韩成人一区二区三区在线观看| 福利视频网站一区二区三区| 欧美日本乱大交xxxxx| 国产人久久人人人人爽| 日日骚欧美日韩| 99精品国产热久久91蜜凸| 日韩欧美国产一区在线观看| 一区二区三区不卡视频 | 成人av资源网站| 欧美成人性福生活免费看| 亚洲免费观看高清完整| 国产毛片精品国产一区二区三区| 欧美私人免费视频| 中文无字幕一区二区三区| 日韩欧美国产麻豆| 亚洲高清免费观看| 一本色道久久加勒比精品| 久久综合av免费| 三级久久三级久久久| 一本大道av伊人久久综合| 久久综合色之久久综合| 日韩在线观看一区二区| 色综合色综合色综合色综合色综合| 久久亚洲影视婷婷| 久久99精品久久久久久| 欧美一区三区四区| 午夜精品久久久久久| 91免费版pro下载短视频| 国产欧美日韩不卡免费| 久久99国产精品尤物| 日韩一区二区在线看片| 午夜电影网一区| 欧美在线观看视频一区二区| 国产精品久久久一本精品| 国产精品1区二区.| 久久久久国产精品厨房| 经典三级在线一区| 26uuu另类欧美亚洲曰本| 精品中文av资源站在线观看| 欧美一区二区三区电影| 日韩高清不卡一区二区三区| 欧美日韩精品一区二区三区蜜桃| 亚洲国产一区二区三区| 欧美四级电影在线观看| 亚洲电影一区二区| 欧美日韩一二三区| 天堂蜜桃91精品| 日韩区在线观看| 亚洲精品视频一区二区| 日本韩国欧美一区二区三区| 一区二区三区四区乱视频| 91国内精品野花午夜精品| 亚洲精品免费播放| 欧美精品vⅰdeose4hd| 亚洲h在线观看| 欧美大片在线观看一区| 国产乱人伦偷精品视频不卡| 国产欧美精品一区aⅴ影院| 成人ar影院免费观看视频| 亚洲视频一区在线观看| aa级大片欧美| 一区二区三区波多野结衣在线观看 | 国产激情视频一区二区三区欧美| 国产偷国产偷亚洲高清人白洁| 成人国产精品视频| 一区二区三区成人| 日韩午夜在线影院| 国产伦精品一区二区三区免费迷| 中文字幕乱码一区二区免费| 成人理论电影网| 亚洲综合视频在线| 欧美一级高清片| 成人中文字幕电影| 亚洲风情在线资源站| 欧美成人精品3d动漫h| 丰满少妇久久久久久久|