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

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

?? ecan.c

?? 基于TI公司DSP2812 CAN 通訊C源碼
?? C
字號:

#include "DSP281x_Device.h"     // DSP28 Headerfile Include File
#include "DSP281x_Examples.h"   // DSP28 Examples Include File
#include "eCan.h"   // DSP28 Examples Include File
#include "ext_inf.h"
union ERRFLAG_REG bitErrFlag;
struct  ADCTRL stAdCtrl;
struct SYSCHECK sTsysErrCheck;
//0:x5043
//------------------------------
Uint16 nRxDataBuf[8];
int nTxDataBuf[64];
union TxCommand_REG bitTxCommand;

void initCanData()
{
	bitTxCommand.all[0]=0;
	bitTxCommand.all[1]=0;
	bitTxCommand.all[2]=0;
	bitErrFlag.all = 0;	
}

int TxData(unsigned int nAddr,unsigned int nComm,int nRsvd3,int nDataLen,int *nData)
{volatile struct MBOX *mBox;
union  TXMSGID_REG msgid;
long i;
int *p;
Uint32 bit;
	if(nDataLen>64) return(-1);
	msgid.bit.nAddr = nAddr;
	msgid.bit.rsvd3 = nRsvd3;
	msgid.bit.nComm = nComm;
	msgid.bit.IDE = 1;
	msgid.bit.AME = 1;
	msgid.bit.AAM = 0;
	if(nDataLen>64 | nDataLen<1) return(-1);
	
	msgid.bit.bFram = 0;
	msgid.bit.nFramId = 0;
	if(nDataLen > 4)
	{
		msgid.bit.bFram = 1;
	}
	i = 0;
	while((ECanaRegs.CANTRS.all & 0x0000FFFF) !=0 )//while(ECanaRegs.CANTA.all != 0x0000FFFF )
	{
	 	i++;
	 	if(i>1000000)return(-2);
	}  // Wait for all TAn bits to be set..
    ECanaRegs.CANTA.all = 0x0000FFFF;   // Clear all TAn
	p = nData;
	mBox = &(ECanaMboxes.MBOX0);
	ECanaRegs.CANME.all = 0xffff0000;
	for(i=0;i<(nDataLen-1)/4+1;i++)
	{
	
		
		msgid.bit.nFramId = i;
		mBox->MSGID.all =msgid.all ;
		mBox->MSGID.bit.IDE =1;
		
		mBox->MDL.word.LOW_WORD =*(p+i*4+0) ;
		mBox->MDL.word.HI_WORD  =*(p+i*4+1) ;
		mBox->MDH.word.LOW_WORD  =*(p+i*4+2) ;
		mBox->MDH.word.HI_WORD =*(p+i*4+3) ;
		mBox++;
	}	
	ECanaRegs.CANME.all = 0xffffffff;

    
    bit = 0x0000FFFF;
    bit =bit >>(16-i);
	ECanaRegs.CANTRS.all = bit;//0x0000FFFF;  // Set TRS for all transmit mailboxes
	
       
//       MessageReceivedCount++;
	return(0);
}

void Rx_Data(volatile struct MBOX *mBox)
{union  TXMSGID_REG msgid;
	
	CAN_LED = 1;
	sTsysErrCheck.CanLedCtrlTime = lTimeL;
	sTsysErrCheck.can_isr_flag = 0;
	bitErrFlag.bit.can_isr_err = 0;
	
	nRxDataBuf[0] = mBox->MSGID.all;
 	nRxDataBuf[1] = mBox->MSGID.all>>16;
 
 
	nRxDataBuf[2] = mBox->MDL.word.LOW_WORD;NOP;
	nRxDataBuf[3] = mBox->MDL.word.HI_WORD;NOP;

	nRxDataBuf[4] = mBox->MDH.word.LOW_WORD;NOP;
	nRxDataBuf[5] = mBox->MDH.word.HI_WORD;NOP;
	msgid.all = mBox->MSGID.all;
	

	if((mBox->MSGID.all & 0x0fffffff) == 0x0fffffff)
	{
		switch(mBox->MSGID.all & 0x1fffffff )
	 	{
	 		case 0x0fffffff:
	 		{
	 			//broad Time
	 			//TxData(0xffff,0xffff,0xffff,4,nRxDataBuf+2);
	 			
	 			lTimeL = mBox->MDL.all;
	 			lTimeH = mBox->MDH.all;
	 			
	 			break;
	 		}
	 		
	 		case 0x1fffffff:
	 		{
	 			//Write addr retun command  )x1ff
	 			//TxData(0xffff,0xffff,4,nRxDataBuf+2);
	 			if((nYx & 1) ==1)
	 			{
	 				nRtuAddr = mBox->MDL.all;
	 				bitTxCommand.bit.wr_Addr = 0x1;
	 			}
	 			break;
	 		}
	 		default :
	 		break;
	 	}
	}
 	else if( msgid.bit.nAddr == nRtuAddr)
 	{
 		
 		switch(msgid.bit.nComm )
	 	{//wr xs
	 	int n,nf;
	 		case 0x10:
	 		case 0x11:
	 		case 0x12:
	 		case 0x13:
	 		case 0x14:
	 		case 0x15:
	 		case 0x16:
	 		case 0x17:
	 		case 0x18:
	 		case 0x19:
	 		case 0x1a:
	 		case 0x1b:
	 		{
	 			//if(msgid.bit.bFram != 1 && msgid.bit.nFramId != 0) return;
	 			n =  msgid.bit.nComm & 0x0f;
	 			if(n >11) return;
	 			nf = (msgid.bit.nFramId  )*4;
	 			if(nf >16) return;
	
	 			nU_I_Xs[n][nf+0] = mBox->MDL.word.LOW_WORD;
	 			nU_I_Xs[n][nf+1] = mBox->MDL.word.HI_WORD;
	 			nU_I_Xs[n][nf+2] = mBox->MDH.word.LOW_WORD;
	 			nU_I_Xs[n][nf+3] = mBox->MDH.word.HI_WORD;
	 		
	 			if(msgid.bit.bFram == 1 && msgid.bit.nFramId == 0)
	 				bitTxCommand.bit.wr_xs = msgid.bit.nComm ;
	 			break;
	 		}
	 		//rd xs
	 		case 0x20:
	 		case 0x21:
	 		case 0x22:
	 		case 0x23:
	 		case 0x24:
	 		case 0x25:
	 		case 0x26:
	 		case 0x27:
	 		case 0x28:
	 		case 0x29:
	 		case 0x2a:
	 		case 0x2b:
	 		{
	 			if(msgid.bit.bFram == 1 && msgid.bit.nFramId != 0) return;
	 			if(msgid.bit.bFram == 1 ) return;
	 			if(msgid.bit.nFramId >11) return;
	 			bitTxCommand.bit.rd_xs = msgid.bit.nComm;
	 			break;
	 		}
	 		//wr adctrl
	 		case 0x30:
	 		{
	 			if(msgid.bit.nFramId ==0)
	 			{
	 				stAdCtrl.nBeginTimeJG = (Uint32)(nRxDataBuf[3]);
	 				stAdCtrl.nBeginTimeJG = ((stAdCtrl.nBeginTimeJG <<16) & 0xffff0000)+ ((Uint32)nRxDataBuf[2] & 0x0000ffff);
		 			
		 			
					stAdCtrl.nBeginL = nRxDataBuf[4];
					stAdCtrl.nEndL = nRxDataBuf[5];
					
		 			bitTxCommand.bit.wr_adctrl = msgid.bit.nComm;	 			
	 			}
	 			if(msgid.bit.nFramId ==1)
	 			{
	 				stAdCtrl.nMinPoint = nRxDataBuf[2];
	 				stAdCtrl.nBeginU = nRxDataBuf[3];
					stAdCtrl.nEndU =  nRxDataBuf[4];
	 			}
	 			break;
	 		}
	 		//rd adctrl
	 		case 0x31:
	 		{
	 			
	 			bitTxCommand.bit.rd_adctrl = msgid.bit.nComm;
	 			
	 			break;
	 		}
	 		//rd real data
	 		case 0x32:
	 		{
	 			bitTxCommand.bit.rd_real_data = msgid.bit.nComm;
	 			
	 			break;
	 		}
	 			//rd db data
	 		case 0x33:
	 		{
	 			bitTxCommand.bit.rd_db_data = msgid.bit.nComm;
	 			bitTxCommand.bit.db_data_sent_wait_time_flag = 0;
	 			break;
	 		}
	 		//ack_rd_db_data
	 		case 0x34:
	 		{	unsigned int nCurrentDbPos;
	 		//	bitTxCommand.bit.ack_rd_db_data = msgid.bit.nComm;
	 			nCurrentDbPos = nRxDataBuf[2]; //pos of Db
	 			if(nCurrentDbPos < DB_MAX )
	 				nAdresultDb[nCurrentDbPos][28] = 0;
	 			break;
	 		}
	 		//stop_db_data_sent
	 		case 0x35:
	 		{	
	 			bitTxCommand.bit.stop_db_data_sent = msgid.bit.nComm;
	 			bitTxCommand.bit.db_data_sent_wait_time_flag = 0;
	 			break;
	 		}
	 		case 0x36://rd_dreal_data
	 		{	
	 			bitTxCommand.bit.rd_dreal_data = msgid.bit.nComm;
	 			break;
	 		}
	 		case 0x37://rd_Offset_data
	 		{	
	 			bitTxCommand.bit.rd_Offset_data = msgid.bit.nComm;
	 			break;
	 		}
	 		case 0x38://rd_Offset_data and rd_dreal_data
	 		{	
	 			bitTxCommand.bit.rd_dreal_Offset_data = msgid.bit.nComm;
	 			break;
	 		}
	 		default :
	 		break;
	 	}
 	
 	}
}

int nCurrentPosInDb;
unsigned long tWait;
void Can_Err_Fx();
void AnyEcan()
{unsigned long n;
int i;
	
	
	if(bitTxCommand.all[0] == 0 && bitTxCommand.all[1] == 0 && bitTxCommand.all[2] == 0 ) 
	{
		Can_Err_Fx();
		return;
		}
	
	if(bitTxCommand.bit.wr_Addr)//addr return
	{
		
		nTxDataBuf[0] = 0x1fff;
		nTxDataBuf[1] = 0;
		nTxDataBuf[2] = bitTxCommand.all[0];
		nTxDataBuf[3] = bitTxCommand.all[1];
		TxData(nRtuAddr,0xffff,0xffff,4,nTxDataBuf);
		bitTxCommand.bit.wr_Addr = 0;
		SaveAdr(nRtuAddr);
		
		
		
		
		
	}
	else if( bitTxCommand.bit.wr_xs )//wr xs
	{	
		n = bitTxCommand.bit.wr_xs	& 0x0f;
		if(n>11) 
		{bitTxCommand.bit.wr_xs = 0;return;}
		
		nTxDataBuf[0] = 0x0000;
		nTxDataBuf[1] = 0x0000;
		nTxDataBuf[2] = bitTxCommand.all[0];
		nTxDataBuf[3] = bitTxCommand.all[1];
		TxData(nRtuAddr,bitTxCommand.bit.wr_xs,0,4,nTxDataBuf);
		bitTxCommand.bit.wr_xs = 0;
		SaveX5043(n,&(nU_I_Xs[n][0]) );
		bitErrFlag.bit.x5043_save = 1;
		
	}
	else if(bitTxCommand.bit.rd_xs)//rd xs
	{
		n = bitTxCommand.bit.rd_xs	& 0x0f;
		for( i =0 ;i<20;i++)
		{nTxDataBuf[i] = nU_I_Xs[n][i];}
		TxData(nRtuAddr,bitTxCommand.bit.rd_xs,0,20,nTxDataBuf);
		bitErrFlag.bit.x5043_save = 0;
		bitTxCommand.bit.rd_xs = 0;
	}
	
	else if(bitTxCommand.bit.wr_adctrl )//wr_adctrl data
	{		
		nTxDataBuf[0] = 0;
		nTxDataBuf[2] = 0;
		nTxDataBuf[3] = bitTxCommand.all[0];
		nTxDataBuf[4] = bitTxCommand.all[1];
		
		TxData(nRtuAddr,bitTxCommand.bit.wr_adctrl,0,4,nTxDataBuf);
		bitTxCommand.bit.wr_adctrl = 0;
		SaveAdCtrl();
		bitErrFlag.bit.x5043_save =1;
		
	}
	else if(bitTxCommand.bit.rd_adctrl )//rd_adctrl data
	{		
		nTxDataBuf[0] = stAdCtrl.nBeginTimeJG;
		nTxDataBuf[1] = stAdCtrl.nBeginTimeJG>>16;
		nTxDataBuf[2] = stAdCtrl.nBeginL;
		nTxDataBuf[3] = stAdCtrl.nEndL;
		nTxDataBuf[4] = stAdCtrl.nMinPoint;
		nTxDataBuf[5] = stAdCtrl.nBeginU;
		nTxDataBuf[6] = stAdCtrl.nEndU;
		TxData(nRtuAddr,bitTxCommand.bit.rd_adctrl,0,8,nTxDataBuf);
		bitTxCommand.bit.rd_adctrl = 0;
	}
	else if(bitTxCommand.bit.rd_real_data )//rd real data
	{
		
		nTxDataBuf[0] = bitErrFlag.all;//
		nTxDataBuf[1] = 0x0000;//
		nTxDataBuf[2] = bitTxCommand.all[0];
		nTxDataBuf[3] = bitTxCommand.all[1];
		for(i=0;i<20;i++)
			nTxDataBuf[i+4] = nAdresult[i];
		TxData(nRtuAddr,bitTxCommand.bit.rd_real_data,0,20,nTxDataBuf);
		bitTxCommand.bit.rd_real_data = 0;
	}
	else if(bitTxCommand.bit.rd_db_data )//rd db data
	{int i,k;
		/*if(bitTxCommand.bit.db_data_sent_wait_time_flag)
		{
			n = (lTimeL - tWait);
			if(n<50) return;
		}*/
		k = nCurrentPosInDb;
		n = 0;
		for(i=0;i<DB_MAX;i++)
		{	
			if(nAdresultDb[k][28] != 0) n++;
			k = (k+1) & DB_MAX-1;
		}
		if(n == 0)
		{
			bitErrFlag.bit.bDbHaveBreakFlag = 0; //may move 
			bitErrFlag.bit.bHaveOneDbFlag = 0;
			bitErrFlag.bit.bDbHaveDataFlag = 0; 
			bitErrFlag.bit.bDbWillFullFlag = 0;  
		}
		else if(n <= 5)
		{
			bitErrFlag.bit.bDbWillFullFlag = 0; 
		}
		//nCurrentPosInDb = (nCurrentPosInDb) & DB_MAX-1;
		k = nCurrentPosInDb = nCurrentPosInDb & DB_MAX-1;
		for(i=0;i<DB_MAX;i++)
		{
			if(nAdresultDb[k][28] !=0 )
			{
				nCurrentPosInDb = k;				
				break;
			}
			k = (k+1) & DB_MAX-1;
		}
		if(nAdresultDb[nCurrentPosInDb][28] != 0)
		{
			nTxDataBuf[0] = 0xffff;
			nTxDataBuf[1] = nCurrentPosInDb;//farm count
			nTxDataBuf[2] = n;//tol Farm 
			nTxDataBuf[3] = 0;
			for(i=0;i<28;i++)
				nTxDataBuf[i+4] = nAdresultDb[nCurrentPosInDb][i];
			TxData(nRtuAddr,bitTxCommand.bit.rd_db_data,0,32,nTxDataBuf);
			tWait = lTimeL;
			//bitTxCommand.bit.db_data_sent_wait_time_flag = 1;
		}
		else
		{
			nTxDataBuf[0] = 0;
			nTxDataBuf[1] = 0;//farm count
			nTxDataBuf[2] = 0;//tol Farm 
			nTxDataBuf[3] = 0;
			TxData(nRtuAddr,bitTxCommand.bit.rd_db_data,0,4,nTxDataBuf);
			bitTxCommand.bit.rd_db_data = 0;
			tWait = lTimeL;
			bitTxCommand.bit.db_data_sent_wait_time_flag = 0;	
			
		}
		bitTxCommand.bit.rd_db_data = 0;
	}	
	//ack rd db data	
//	else if(bitTxCommand.bit.ack_rd_db_data )
//	{	}
//------------------------------------------	
	//stop_db_data_sent
	else if(bitTxCommand.bit.stop_db_data_sent )
	{
		nTxDataBuf[0] = 0;
		nTxDataBuf[1] = 0;//farm count
		nTxDataBuf[2] = 0;//tol Farm 
		nTxDataBuf[3] = 0;
		TxData(nRtuAddr,bitTxCommand.bit.stop_db_data_sent,0,4,nTxDataBuf);
		bitTxCommand.bit.stop_db_data_sent = 0;
		bitTxCommand.bit.db_data_sent_wait_time_flag = 0;
	}
	else if(bitTxCommand.bit.rd_dreal_data )//rd dreal data
	{	int k,n;
	
		for( n=0;n<20;n++)
		{	k =n*5;
			nTxDataBuf[n] = nAdData[k];
			nTxDataBuf[n+20] = nAdData[k+1];		
		}
		nTxDataBuf[19] = nAdData[5*19 +2];
		nTxDataBuf[19+20] = nAdData[5*19 +3];		
		
		TxData(nRtuAddr,bitTxCommand.bit.rd_dreal_data,0,20*2,nTxDataBuf);
		bitTxCommand.bit.rd_dreal_data = 0;
	}
	//rd_Offset_data
	else if(bitTxCommand.bit.rd_Offset_data )
	{
		
		int k,n;
		
		for( n=0;n<20;n++)
		{	k =n*5;
			nTxDataBuf[n] = nAdData[k+4];		
		}			
		nTxDataBuf[18] = bitErrFlag.all;
		
		TxData(nRtuAddr,bitTxCommand.bit.rd_Offset_data,0,20,nTxDataBuf);
		
		bitTxCommand.bit.rd_Offset_data = 0;
	}
	//rd_dreal_Offset_data
	else if(bitTxCommand.bit.rd_dreal_Offset_data )
	{
		
		int k,n;
	
		for( n=0;n<20;n++)
		{	k =n*5;
			nTxDataBuf[n] = nAdData[k];
			nTxDataBuf[n+20] = nAdData[k+1];
			nTxDataBuf[n+40] = nAdData[k+4];		
		}
	//	nTxDataBuf[18] = nAdData[5*19 +2];
	//	nTxDataBuf[18+20] = nAdData[5*19 +3];	
		//nTxDataBuf[18] = 0;
		//nTxDataBuf[18+20] = 0;	
		nTxDataBuf[18+40] = bitErrFlag.all;//
		TxData(nRtuAddr,bitTxCommand.bit.rd_dreal_Offset_data,0,20*3,nTxDataBuf);
				
		bitTxCommand.bit.rd_dreal_Offset_data = 0;

	}
}
// INT9.5
interrupt void ECAN_RX_ISR(void)//ECAN0INTA_ISR(void)  // eCAN-A
{
  // Insert ISR Code here
volatile struct MBOX *mBox;
unsigned long bRmp,bRmpBit;

int i;
   PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; 
   mBox = &(ECanaMboxes.MBOX31);
   do
   {	
   		bRmp = ECanaRegs.CANRMP.all & 0xffff0000;
   		bRmpBit = 0x80000000;
   		for(i=0;i<16;i++)
   		{
   			if(bRmp == 0)break;
   			if(bRmp  & 0x80000000)
   			{
   				
   				Rx_Data(mBox - i);
		     	
		     	ECanaRegs.CANRMP.all = bRmpBit;      //清接收標志		     		
   			}
   			bRmp = bRmp << 1;
   			bRmpBit = bRmpBit >> 1;
   		}     	
    }while( ECanaRegs.CANRMP.all & 0xffff0000 != 0);
 
    asm(" 	clrc INTM"); 

}

// INT9.6
interrupt void ECAN_TX_ISR(void)//ECAN1INTA_ISR(void)  // eCAN-A
{
	PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; 

    asm(" 	clrc INTM"); 

}
void Can_Err_Fx()
{unsigned int i;
	if(sTsysErrCheck.can_isr_flag != 0)
	{
		i = (unsigned int )(nTimeSecond - sTsysErrCheck.can_isr_err_Time);
		if( i > 60 )
		{
			bitErrFlag.bit.can_isr_err = 0x1;
			InitECan( nRtuAddr);
			
		}
		if(i>120)
		{
		sTsysErrCheck.can_isr_err_Time  = nTimeSecond=0;
		for(;;);
		}

	}
	
	else 
	{
		sTsysErrCheck.can_isr_err_Time  = nTimeSecond;
		sTsysErrCheck.can_isr_flag = 0xffff;
		bitErrFlag.bit.can_isr_err = 0x0;
	}
	i=	lTimeL - sTsysErrCheck.CanLedCtrlTime;
	if(i>100)
		CAN_LED = 0;
}	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲国产一卡| 日韩一级成人av| 欧美韩国日本不卡| 国产一区二区不卡老阿姨| 久久一夜天堂av一区二区三区| 激情欧美日韩一区二区| 精品sm在线观看| 国产成人99久久亚洲综合精品| 国产欧美日韩在线| 日本道色综合久久| 免费看日韩a级影片| 国产日韩在线不卡| 波多野结衣视频一区| 亚洲一区二区三区四区在线| 欧美一区二区国产| 国产伦理精品不卡| 一区二区三区久久久| 欧美一级黄色录像| 成人伦理片在线| 香蕉成人啪国产精品视频综合网 | 成人免费视频免费观看| 综合自拍亚洲综合图不卡区| 欧美性猛片aaaaaaa做受| 麻豆91在线播放免费| 国产精品天天摸av网| 欧美三级欧美一级| 国产东北露脸精品视频| 亚洲aⅴ怡春院| 欧美高清在线一区| 在线成人免费视频| 成人国产精品免费| 奇米777欧美一区二区| 中文字幕免费不卡| 欧美刺激午夜性久久久久久久| 波多野结衣91| 国产精品自拍av| 爽好久久久欧美精品| 国产精品萝li| xf在线a精品一区二区视频网站| 色狠狠一区二区| 国产99久久久久| 国模套图日韩精品一区二区| 亚洲一线二线三线视频| 国产精品乱码妇女bbbb| 欧美xxxxx裸体时装秀| 欧美日韩精品高清| 色综合久久久久| a在线欧美一区| 国产v综合v亚洲欧| 国产成人啪午夜精品网站男同| 日韩不卡一区二区| 亚洲成a人片在线观看中文| 成人欧美一区二区三区视频网页| 精品精品国产高清a毛片牛牛| 欧美亚洲图片小说| 色婷婷av一区二区三区之一色屋| eeuss国产一区二区三区| 国产99久久久国产精品潘金| 国产乱对白刺激视频不卡| 久久成人18免费观看| 日本成人在线视频网站| 午夜国产不卡在线观看视频| 亚洲在线视频一区| 亚洲第一成年网| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲激情在线激情| 亚洲人快播电影网| 一区二区高清免费观看影视大全| 亚洲激情六月丁香| 亚洲一区二区免费视频| 亚洲国产精品久久不卡毛片| 亚洲综合另类小说| 性做久久久久久免费观看 | 日日摸夜夜添夜夜添国产精品| 亚洲激情校园春色| 一区二区激情小说| 亚洲成a人v欧美综合天堂| 秋霞电影网一区二区| 久久精品国产秦先生| 国产传媒久久文化传媒| 91网站视频在线观看| 欧美三级电影在线看| 91麻豆精品国产综合久久久久久| 制服丝袜日韩国产| 久久在线观看免费| 日韩伦理av电影| 天堂久久久久va久久久久| 久久99精品久久久久久久久久久久| 国产精品亚洲第一区在线暖暖韩国 | 精品一区中文字幕| 国产成人自拍高清视频在线免费播放| 成人手机在线视频| 欧美日韩国产一级| 国产亚洲精品精华液| 亚洲柠檬福利资源导航| 免费观看成人av| 色综合一个色综合亚洲| 欧美一区二区三区免费大片| 久久精品一区二区三区不卡牛牛 | 国产精品美女久久久久av爽李琼 | 久久久久久日产精品| 国产精品国产精品国产专区不片 | 国产欧美一区二区精品性| 亚洲欧洲制服丝袜| 久久99精品久久久久久| 91麻豆精品秘密| 精品久久久久久最新网址| 一区二区三区中文字幕| 国产专区欧美精品| 555www色欧美视频| 亚洲欧美一区二区不卡| 久久国产婷婷国产香蕉| 色视频一区二区| 国产日韩欧美一区二区三区综合| 五月天网站亚洲| 99免费精品视频| 日韩欧美在线观看一区二区三区| 亚洲精品综合在线| 成人小视频免费在线观看| 欧美一区二区久久久| 亚洲成人午夜电影| 日本精品免费观看高清观看| 欧美激情一区在线观看| 免费观看一级欧美片| 欧美人与性动xxxx| 一区二区三区不卡视频在线观看| 波多野结衣中文字幕一区 | 成人黄色av电影| 久久久青草青青国产亚洲免观| 男男gaygay亚洲| 欧美另类高清zo欧美| 一区二区高清视频在线观看| 成人国产精品免费观看| 国产农村妇女精品| 国产乱人伦精品一区二区在线观看| 欧美日韩国产综合一区二区| 亚洲国产日产av| 欧美系列在线观看| 亚洲自拍偷拍图区| 欧美午夜不卡视频| 性做久久久久久久免费看| 欧美色倩网站大全免费| 亚洲午夜免费福利视频| 欧美视频日韩视频| 日韩国产一二三区| 欧美一级欧美三级在线观看| 免费成人深夜小野草| 日韩女优毛片在线| 国内精品嫩模私拍在线| 久久久美女艺术照精彩视频福利播放| 狠狠久久亚洲欧美| 国产精品日韩精品欧美在线| 一本色道综合亚洲| 午夜精品一区在线观看| 日韩欧美区一区二| 国产a精品视频| 一区二区三区自拍| 91精品国产综合久久福利| 激情六月婷婷久久| 中文字幕欧美一| 欧美日韩一区国产| 国模一区二区三区白浆| 国产精品久久看| 在线播放中文一区| 国产成都精品91一区二区三| 亚洲乱码精品一二三四区日韩在线| 欧美色图12p| 狠狠色2019综合网| 亚洲精品第1页| 欧美哺乳videos| 色综合色综合色综合色综合色综合| 日韩精品一级中文字幕精品视频免费观看 | 色吧成人激情小说| 日韩激情av在线| 国产欧美日韩另类一区| 欧美在线观看视频在线| 美女视频黄久久| 亚洲六月丁香色婷婷综合久久| 在线成人高清不卡| 99久久精品免费| 久久精品久久综合| 一色屋精品亚洲香蕉网站| 日韩一二三四区| 欧美最新大片在线看| 国产福利一区二区| 日本在线不卡视频一二三区| 一区在线观看视频| 精品99999| 欧美日韩三级一区| 成人18精品视频| 极品少妇xxxx偷拍精品少妇| 一区二区三区中文字幕电影| 久久久蜜桃精品| 欧美一级专区免费大片| 91久久精品网| 成人激情免费视频| 国产乱妇无码大片在线观看| 欧美a级理论片| 亚洲国产精品久久艾草纯爱| **网站欧美大片在线观看|