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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? enc28j60.lst

?? ENC28J60 System HTTP
?? LST
?? 第 1 頁 / 共 5 頁
字號:
   1               		.file	"enc28j60.c"
   2               	__SREG__ = 0x3f
   3               	__SP_H__ = 0x3e
   4               	__SP_L__ = 0x3d
   5               	__CCP__  = 0x34
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
  95               	.global	enc28j60_read_buffer
  97               	enc28j60_read_buffer:
   1:io/enc28j60.c **** /*
   2:io/enc28j60.c **** ,-----------------------------------------------------------------------------------------.
   3:io/enc28j60.c **** | io/enc28j60
   4:io/enc28j60.c **** |-----------------------------------------------------------------------------------------
   5:io/enc28j60.c **** | this file implements the driver for the microchip enc28j60 ethernet controller
   6:io/enc28j60.c **** | - some ideas are based on the enc28j60 driver of the procyon avrlib ;)
   7:io/enc28j60.c **** |
   8:io/enc28j60.c **** | BUGS:
   9:io/enc28j60.c **** | - sometimes enc28j60 is not correctly initialised (not receiving any packets)
  10:io/enc28j60.c **** |
  11:io/enc28j60.c **** | Author   : {{removed according to contest rules}}
  12:io/enc28j60.c **** |            -> circuitcellar.com avr design contest 2006
  13:io/enc28j60.c **** |            -> Entry #AT2616
  14:io/enc28j60.c **** |
  15:io/enc28j60.c **** |-----------------------------------------------------------------------------------------
  16:io/enc28j60.c **** | License:
  17:io/enc28j60.c **** | This program is free software; you can redistribute it and/or modify it under
  18:io/enc28j60.c **** | the terms of the GNU General Public License as published by the Free Software
  19:io/enc28j60.c **** | Foundation; either version 2 of the License, or (at your option) any later
  20:io/enc28j60.c **** | version.
  21:io/enc28j60.c **** | This program is distributed in the hope that it will be useful, but
  22:io/enc28j60.c **** |
  23:io/enc28j60.c **** | WITHOUT ANY WARRANTY;
  24:io/enc28j60.c **** |
  25:io/enc28j60.c **** | without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  26:io/enc28j60.c **** | PURPOSE. See the GNU General Public License for more details.
  27:io/enc28j60.c **** |
  28:io/enc28j60.c **** | You should have received a copy of the GNU General Public License along with
  29:io/enc28j60.c **** | this program; if not, write to the Free Software Foundation, Inc., 51
  30:io/enc28j60.c **** | Franklin St, Fifth Floor, Boston, MA 02110, USA
  31:io/enc28j60.c **** |
  32:io/enc28j60.c **** | http://www.gnu.de/gpl-ger.html
  33:io/enc28j60.c **** `-----------------------------------------------------------------------------------------*/
  34:io/enc28j60.c **** #include "enc28j60.h"
  35:io/enc28j60.c **** 
  36:io/enc28j60.c **** //ACTIVATE DEBUG by editing this file:
  37:io/enc28j60.c **** #include "debug.h"
  38:io/enc28j60.c **** 
  39:io/enc28j60.c **** volatile unsigned char enc28j60_current_bank;
  40:io/enc28j60.c **** volatile unsigned int  enc28j60_next_packet_ptr;
  41:io/enc28j60.c **** unsigned char enc28j60_revision;
  42:io/enc28j60.c **** #include <avr/pgmspace.h>
  43:io/enc28j60.c **** 
  44:io/enc28j60.c **** //store enc28j60 config in program memory
  45:io/enc28j60.c **** //syntax: <REGx>, <REGVALx>, <REGy>, <REGVALy>,...
  46:io/enc28j60.c **** unsigned char enc28j60_config[] PROGMEM = {
  47:io/enc28j60.c **** 	//setup bank0 (config stored in progmem, see above)
  48:io/enc28j60.c **** 	//tx buffer:
  49:io/enc28j60.c **** 	ENC28J60_REG_ETXSTL, lo8(ENC28J60_TX_BUFFER_START), //start lo
  50:io/enc28j60.c **** 	ENC28J60_REG_ETXSTH, hi8(ENC28J60_TX_BUFFER_START), //start hi
  51:io/enc28j60.c **** 	ENC28J60_REG_ETXNDL, lo8(ENC28J60_TX_BUFFER_END  ), //end lo
  52:io/enc28j60.c **** 	ENC28J60_REG_ETXNDH, hi8(ENC28J60_TX_BUFFER_END  ), //end hi
  53:io/enc28j60.c **** 	//rx buffer
  54:io/enc28j60.c **** 	ENC28J60_REG_ERXSTL, lo8(ENC28J60_RX_BUFFER_START), //start lo
  55:io/enc28j60.c **** 	ENC28J60_REG_ERXSTH, hi8(ENC28J60_RX_BUFFER_START), //start hi
  56:io/enc28j60.c **** 	ENC28J60_REG_ERXNDL, lo8(ENC28J60_RX_BUFFER_END  ), //end lo
  57:io/enc28j60.c **** 	ENC28J60_REG_ERXNDH, hi8(ENC28J60_RX_BUFFER_END  ), //end hi
  58:io/enc28j60.c **** 	//rx ptr:
  59:io/enc28j60.c **** 	//ENC28J60_REG_ERDPTL, lo8(ENC28J60_RX_BUFFER_START+1),
  60:io/enc28j60.c **** 	//ENC28J60_REG_ERDPTH, hi8(ENC28J60_RX_BUFFER_START+1),
  61:io/enc28j60.c **** 
  62:io/enc28j60.c **** 	//setup bank2: (see microchip datasheet p.36)
  63:io/enc28j60.c **** 	//1.) clear the MARST bit in MACON2.
  64:io/enc28j60.c **** 	ENC28J60_REG_MACON2, 	0x00,
  65:io/enc28j60.c **** 	//2.) mac rx enable, activate pause control frame support
  66:io/enc28j60.c **** 	ENC28J60_REG_MACON1, 	((1<<ENC28J60_BIT_MARXEN)|(1<<ENC28J60_BIT_RXPAUS)|(1<<ENC28J60_BIT_TXPAUS))
  67:io/enc28j60.c **** 	//3.) setup MACON3: auto padding of small packets, add crc, enable frame length check:
  68:io/enc28j60.c **** 	ENC28J60_REG_MACON3, 	((1<<ENC28J60_BIT_PADCFG0)|(1<<ENC28J60_BIT_TXCRCEN)|(1<<ENC28J60_BIT_FRMLNE
  69:io/enc28j60.c **** 	//4.) dont set up MACON4 (use default)
  70:io/enc28j60.c **** 	//5.) setup maximum framelenght to 1518:
  71:io/enc28j60.c **** 	ENC28J60_REG_MAMXFLL, lo8(1518),
  72:io/enc28j60.c **** 	ENC28J60_REG_MAMXFLH, hi8(1518),
  73:io/enc28j60.c **** 	//6.) set up back-to-back gap: 0x15 for full duplex / 0x12 for half duplex
  74:io/enc28j60.c **** 	ENC28J60_REG_MABBIPG, 0x12, //half duplex
  75:io/enc28j60.c **** 	//7.) setup non-back-to-back gap: use 0x12
  76:io/enc28j60.c **** 	ENC28J60_REG_MAIPGL, 	0x12,
  77:io/enc28j60.c **** 	//8.) setup non-back-to-back gap high byte: 0x0C for half duplex:
  78:io/enc28j60.c **** 	ENC28J60_REG_MAIPGH, 	0x0C, //half duplex
  79:io/enc28j60.c **** 	//9.) dont change MACLCON1+2 / MACLCON2 might be changed for networks with long wires !
  80:io/enc28j60.c **** 
  81:io/enc28j60.c **** 	//setup bank3:
  82:io/enc28j60.c **** 	//10.) programm mac address: BYTE BACKWARD !
  83:io/enc28j60.c **** 	ENC28J60_REG_MAADR5, NIC_MAC0,
  84:io/enc28j60.c **** 	ENC28J60_REG_MAADR4, NIC_MAC1,
  85:io/enc28j60.c **** 	ENC28J60_REG_MAADR3, NIC_MAC2,
  86:io/enc28j60.c **** 	ENC28J60_REG_MAADR2, NIC_MAC3,
  87:io/enc28j60.c **** 	ENC28J60_REG_MAADR1, NIC_MAC4,
  88:io/enc28j60.c **** 	ENC28J60_REG_MAADR0, NIC_MAC5
  89:io/enc28j60.c **** 	};
  90:io/enc28j60.c **** 
  91:io/enc28j60.c **** 
  92:io/enc28j60.c **** //initialise spi & enc28j60
  93:io/enc28j60.c **** void enc28j60_init(void){
  94:io/enc28j60.c **** 	unsigned char i;
  95:io/enc28j60.c **** 
  96:io/enc28j60.c **** 	//set bank to invalid value -> bank set will update in any case:
  97:io/enc28j60.c **** 	enc28j60_current_bank = 0xFF;
  98:io/enc28j60.c **** 
  99:io/enc28j60.c **** 	//set up port directions:
 100:io/enc28j60.c **** 	ENC28J60_DDR |= (1<<ENC28J60_PIN_CS)|(1<<ENC28J60_PIN_RESET);
 101:io/enc28j60.c **** 	
 102:io/enc28j60.c **** 	//deselect enc28j60:
 103:io/enc28j60.c **** 	ENC28J60_CS_HI();
 104:io/enc28j60.c **** 
 105:io/enc28j60.c **** 	//SPI init
 106:io/enc28j60.c **** 	// initialize I/O
 107:io/enc28j60.c **** 	PORTB |= (1<<7); //sck = hi
 108:io/enc28j60.c **** 
 109:io/enc28j60.c **** 	//spi = output
 110:io/enc28j60.c **** 	//mega8//DDRB |= (1<<2)|(1<<3)|(1<<5); //SS,MOSI,SCK = OUT
 111:io/enc28j60.c **** 	DDRB |= (1<<4)|(1<<5)|(1<<7); //SS,MOSI,SCK = OUT
 112:io/enc28j60.c **** 	DDRB &= ~(1<<6); //MISO = IN
 113:io/enc28j60.c **** 
 114:io/enc28j60.c **** 	//SPI init:
 115:io/enc28j60.c **** 	// - master mode
 116:io/enc28j60.c **** 	// - positive clock phase
 117:io/enc28j60.c **** 	// - msb first
 118:io/enc28j60.c **** 	// - maximum SPI speed (fosc/2)
 119:io/enc28j60.c **** 	// - enable spi
 120:io/enc28j60.c **** 	SPCR = (0<<CPOL)|(1<<MSTR)|(0<<DORD)|(0<<SPR1)|(0<<SPR0)|(1<<SPE);
 121:io/enc28j60.c **** 	SPSR = (1<<SPI2X);
 122:io/enc28j60.c **** 
 123:io/enc28j60.c **** 	//reset enc28j60:
 124:io/enc28j60.c **** 	ENC28J60_RESET_LO();
 125:io/enc28j60.c **** 	_delay_ms(10);
 126:io/enc28j60.c **** 	ENC28J60_RESET_HI();
 127:io/enc28j60.c **** 
 128:io/enc28j60.c **** 	//after reset we have to wait at least 50us ! 
 129:io/enc28j60.c **** 	_delay_us(60);
 130:io/enc28j60.c **** 	//workaround for bad chip revisions: wait >1ms (wait 10ms...)
 131:io/enc28j60.c **** 	_delay_ms(10);
 132:io/enc28j60.c **** 	
 133:io/enc28j60.c **** 	//wait for ready flag
 134:io/enc28j60.c **** 	while(!(enc28j60_read_address(ENC28J60_REG_ESTAT) & 0x01)){};
 135:io/enc28j60.c **** 
 136:io/enc28j60.c **** 	//set up rx pointer:	
 137:io/enc28j60.c **** 	enc28j60_next_packet_ptr = ENC28J60_RX_BUFFER_START;
 138:io/enc28j60.c **** 	//enc28j60_next_packet_ptr = 0x0602;
 139:io/enc28j60.c **** 
 140:io/enc28j60.c **** 	//copy config from progmem to enc28j60:
 141:io/enc28j60.c **** 	for(i=0; i<2*22; i+=2){
 142:io/enc28j60.c **** 		enc28j60_write_address(pgm_read_byte(&enc28j60_config[i+0]),pgm_read_byte(&enc28j60_config[i+1]))
 143:io/enc28j60.c **** 	}
 144:io/enc28j60.c **** 	
 145:io/enc28j60.c **** 	//setup phy:
 146:io/enc28j60.c **** 	enc28j60_write_phy(ENC28J60_PHY_PHCON2, (1<<ENC28J60_BIT_HDLDIS)); //=no loopback of transmitted f
 147:io/enc28j60.c **** 	
 148:io/enc28j60.c **** 	//enable interrups
 149:io/enc28j60.c **** 	enc28j60_write_address(ENC28J60_REG_EIE, (1<<6)|(1<<7));
 150:io/enc28j60.c **** 
 151:io/enc28j60.c **** 	//enable rx
 152:io/enc28j60.c **** 	//enc28j60_write_address(ENC28J60_REG_ECON1, (1<<ENC28J60_BIT_RXEN));
 153:io/enc28j60.c **** 	enc28j60_spi_write_word(ENC28J60_OP_BFS|ENC28J60_REG_ECON1, (1<<ENC28J60_BIT_RXEN));
 154:io/enc28j60.c **** 	
 155:io/enc28j60.c **** 	//set up leds: LEDA: link status, LEDB: RX&TX activity
 156:io/enc28j60.c **** 	enc28j60_write_phy(ENC28J60_PHY_PHLCON, 0x0472);
 157:io/enc28j60.c **** 
 158:io/enc28j60.c **** 	//read silicon revision
 159:io/enc28j60.c **** 	enc28j60_revision = enc28j60_read_address(ENC28J60_REG_EREVID);
 160:io/enc28j60.c **** }
 161:io/enc28j60.c **** 
 162:io/enc28j60.c **** void enc28j60_send_packet(unsigned char *buffer, unsigned int len){
 163:io/enc28j60.c **** 	unsigned int tmp;
 164:io/enc28j60.c **** 	//still sending ?
 165:io/enc28j60.c **** 	//wait max 50*10 = 500ms:
 166:io/enc28j60.c **** 	for(tmp=0; tmp<50; tmp++){
 167:io/enc28j60.c **** 		if (!(enc28j60_read_address(ENC28J60_REG_ECON1) & (1<<ENC28J60_BIT_TXRTS))){
 168:io/enc28j60.c **** 			//send finished -> tx packet
 169:io/enc28j60.c **** 			break;
 170:io/enc28j60.c **** 		}
 171:io/enc28j60.c **** 		//tx not finished yet, wait 10ms
 172:io/enc28j60.c **** 		_delay_ms(10);
 173:io/enc28j60.c **** 	}
 174:io/enc28j60.c **** 	
 175:io/enc28j60.c **** 	//send anyway...
 176:io/enc28j60.c **** 
 177:io/enc28j60.c **** 	//setup write pointer:
 178:io/enc28j60.c **** 	enc28j60_write_address(ENC28J60_REG_EWRPTL, (ENC28J60_TX_BUFFER_START&0xFF));
 179:io/enc28j60.c **** 	enc28j60_write_address(ENC28J60_REG_EWRPTH, (ENC28J60_TX_BUFFER_START)>>8);
 180:io/enc28j60.c **** 	
 181:io/enc28j60.c **** 	//set tx end pointer to [start+len]:
 182:io/enc28j60.c **** 	enc28j60_write_address(ENC28J60_REG_ETXNDL, (ENC28J60_TX_BUFFER_START+len)&0xFF);
 183:io/enc28j60.c **** 	enc28j60_write_address(ENC28J60_REG_ETXNDH, (ENC28J60_TX_BUFFER_START+len)>>8);
 184:io/enc28j60.c **** 
 185:io/enc28j60.c **** 	//start buffer write command
 186:io/enc28j60.c **** 	enc28j60_spi_write_word(ENC28J60_OP_WRITE_BUF_MEM, 0x00);
 187:io/enc28j60.c **** 
 188:io/enc28j60.c **** 	//copy buffer to enc28j60:
 189:io/enc28j60.c **** 	enc28j60_write_buffer(buffer, len);
 190:io/enc28j60.c **** 
 191:io/enc28j60.c **** 	//bad silicon workaround:
 192:io/enc28j60.c **** 	//reset tx logic:
 193:io/enc28j60.c **** 	enc28j60_spi_write_word(ENC28J60_OP_BFS | ENC28J60_REG_ECON1, (1<<ENC28J60_BIT_TXRST));
 194:io/enc28j60.c **** 	enc28j60_spi_write_word(ENC28J60_OP_BFC | ENC28J60_REG_ECON1, (1<<ENC28J60_BIT_TXRST));
 195:io/enc28j60.c **** 
 196:io/enc28j60.c **** 	//activate transmission
 197:io/enc28j60.c **** 	enc28j60_spi_write_word(ENC28J60_OP_BFS | ENC28J60_REG_ECON1, (1<<ENC28J60_BIT_TXRTS)|(1<<ENC28J60
 198:io/enc28j60.c **** }
 199:io/enc28j60.c **** 
 200:io/enc28j60.c **** unsigned int enc28j60_receive_packet(unsigned char *buffer, unsigned int maxlen){
 201:io/enc28j60.c **** 	unsigned int rxstat;
 202:io/enc28j60.c **** 	unsigned int len;
 203:io/enc28j60.c **** 
 204:io/enc28j60.c **** 	#if ENC_DEBUG
 205:io/enc28j60.c **** 	unsigned int pktcnt = enc28j60_read_address(ENC28J60_REG_EPKTCNT);
 206:io/enc28j60.c **** 	if (CLOCK_TEST_FLAG(CLOCK_SEC) || pktcnt != 0){
 207:io/enc28j60.c **** 		softuart_puts_progmem("ENC : pktcnt ");
 208:io/enc28j60.c **** 		softuart_put_uint16(pktcnt);
 209:io/enc28j60.c **** 		softuart_puts_progmem(" pktflag ");
 210:io/enc28j60.c **** 		if ((enc28j60_read_address(ENC28J60_REG_EIR) & (1<<ENC28J60_BIT_PKTIF)))
 211:io/enc28j60.c **** 			softuart_putc('1');
 212:io/enc28j60.c **** 		else
 213:io/enc28j60.c **** 			softuart_putc('0');
 214:io/enc28j60.c **** 		softuart_putnewline();
 215:io/enc28j60.c **** 	}
 216:io/enc28j60.c **** 	#endif
 217:io/enc28j60.c **** 
 218:io/enc28j60.c **** 	//packet in buffer ?	
 219:io/enc28j60.c **** 	if ((enc28j60_read_address(ENC28J60_REG_EIR) & (1<<ENC28J60_BIT_PKTIF)) == 0){
 220:io/enc28j60.c **** 		//double check!	
 221:io/enc28j60.c **** 		//errata says that PKTIF does not work as it should 
 222:io/enc28j60.c **** 		//->check packetcount too:
 223:io/enc28j60.c **** 		if (enc28j60_read_address(ENC28J60_REG_EPKTCNT) == 0)
 224:io/enc28j60.c **** 			return 0;
 225:io/enc28j60.c **** 	}
 226:io/enc28j60.c **** 
 227:io/enc28j60.c **** 	//set read pointer to next packet;
 228:io/enc28j60.c **** 	enc28j60_write_address(ENC28J60_REG_ERDPTL, (enc28j60_next_packet_ptr));
 229:io/enc28j60.c **** 	enc28j60_write_address(ENC28J60_REG_ERDPTH, (enc28j60_next_packet_ptr)>>8);
 230:io/enc28j60.c **** 	#if ENC_DEBUG
 231:io/enc28j60.c **** 	softuart_puts_progmem("ENC : nptr <= ");
 232:io/enc28j60.c **** 	softuart_put_uint16(enc28j60_next_packet_ptr);
 233:io/enc28j60.c **** 	softuart_putnewline();
 234:io/enc28j60.c **** 	#endif
 235:io/enc28j60.c **** 
 236:io/enc28j60.c **** 	//now read the transmit status vector
 237:io/enc28j60.c **** 	//read next packet ptr
 238:io/enc28j60.c **** 	enc28j60_next_packet_ptr  = enc28j60_spi_read_byte(ENC28J60_OP_READ_BUF_MEM, 0);
 239:io/enc28j60.c **** 	enc28j60_next_packet_ptr |= enc28j60_spi_read_byte(ENC28J60_OP_READ_BUF_MEM, 0)<<8;
 240:io/enc28j60.c ****   #if ENC_DEBUG
 241:io/enc28j60.c **** 	softuart_puts_progmem("ENC : nptr read: ");
 242:io/enc28j60.c **** 	softuart_put_uint16(enc28j60_next_packet_ptr);
 243:io/enc28j60.c **** 	softuart_putnewline();
 244:io/enc28j60.c **** 	#endif
 245:io/enc28j60.c **** 
 246:io/enc28j60.c **** 	//read packet length
 247:io/enc28j60.c **** 	len  = enc28j60_spi_read_byte(ENC28J60_OP_READ_BUF_MEM, 0);
 248:io/enc28j60.c **** 	len |= enc28j60_spi_read_byte(ENC28J60_OP_READ_BUF_MEM, 0)<<8;
 249:io/enc28j60.c **** 	
 250:io/enc28j60.c **** 	//read rx stat
 251:io/enc28j60.c **** 	rxstat  = enc28j60_spi_read_byte(ENC28J60_OP_READ_BUF_MEM, 0);
 252:io/enc28j60.c **** 	rxstat |= enc28j60_spi_read_byte(ENC28J60_OP_READ_BUF_MEM, 0)<<8;
 253:io/enc28j60.c **** 
 254:io/enc28j60.c **** 	//limit read bytecount
 255:io/enc28j60.c **** 	if (len>maxlen)
 256:io/enc28j60.c **** 		len = maxlen;
 257:io/enc28j60.c **** 
 258:io/enc28j60.c **** 	//tranfer packet from enc28j60 to our buffer
 259:io/enc28j60.c **** 	enc28j60_read_buffer(buffer,len);
 260:io/enc28j60.c **** 
 261:io/enc28j60.c **** 	//mark packet as processed (free mem)
 262:io/enc28j60.c **** 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一二三在| 久久人人爽爽爽人久久久| 91丝袜美女网| 99久久99久久久精品齐齐| 成人免费va视频| 成人18视频日本| 91一区二区三区在线观看| a在线欧美一区| 91麻豆精品一区二区三区| 99久久久免费精品国产一区二区| av电影一区二区| 91色九色蝌蚪| 欧美午夜宅男影院| 91精品国产一区二区三区香蕉 | 日韩一区二区三区四区| 欧美电影免费观看高清完整版在| 在线不卡免费欧美| 精品久久人人做人人爽| 久久精品在这里| 欧美国产欧美综合| 亚洲狼人国产精品| 日韩成人一区二区三区在线观看| 免费看欧美女人艹b| 国产精品资源在线| 色哟哟日韩精品| 欧美日韩美少妇| 精品国产乱码久久久久久浪潮| 久久一夜天堂av一区二区三区| 国产欧美中文在线| 亚洲天堂2016| 日本va欧美va精品| 国产精品99久久久久| 一本一本大道香蕉久在线精品| 精品视频在线视频| 精品国产亚洲在线| 国产精品久久久久影院亚瑟 | 国产精品资源在线看| 91丨porny丨国产| 欧美精品日韩精品| 久久一区二区三区四区| 亚洲精品菠萝久久久久久久| 日本亚洲电影天堂| 成人爱爱电影网址| 91麻豆精品国产91久久久资源速度 | 亚洲女人****多毛耸耸8| 丝袜亚洲精品中文字幕一区| 韩国av一区二区三区四区| 91丨porny丨户外露出| 日韩欧美一级片| 亚洲精品写真福利| 精品系列免费在线观看| 91麻豆免费观看| 精品久久久久久最新网址| 亚洲激情图片一区| 国产激情视频一区二区在线观看 | 欧美成人vr18sexvr| 中文字幕一区在线观看视频| 日韩高清国产一区在线| 91首页免费视频| 久久久久国产成人精品亚洲午夜| 亚洲无人区一区| 成人一区二区视频| 欧美va亚洲va| 亚洲成a人片在线不卡一二三区| 国产综合色在线| 欧美精选在线播放| 国产精品免费观看视频| 喷白浆一区二区| 欧美日韩亚州综合| 综合在线观看色| 国产成a人亚洲精| 日韩一级高清毛片| 亚洲自拍偷拍网站| 91小视频免费看| 国产免费成人在线视频| 另类中文字幕网| 91精品啪在线观看国产60岁| 亚洲综合无码一区二区| 成人97人人超碰人人99| 久久精品水蜜桃av综合天堂| 日本亚洲免费观看| 91麻豆精品国产自产在线| 亚洲综合久久久久| 91豆麻精品91久久久久久| 一区在线中文字幕| 成人性视频网站| 国产欧美一区二区三区沐欲| 国内外成人在线| www久久久久| 国产一区999| 精品国产伦一区二区三区观看方式 | 奇米色777欧美一区二区| 欧美日韩高清一区二区| 亚洲不卡在线观看| 欧美日本韩国一区二区三区视频| 一区二区成人在线| 色婷婷激情综合| 亚洲精品一二三| 欧美主播一区二区三区| 亚洲大型综合色站| 欧美精品123区| 免费一级片91| 精品日韩成人av| 国产福利91精品一区| 久久精品一区二区三区不卡牛牛| 国产麻豆午夜三级精品| 久久九九久久九九| 99久久99久久精品免费看蜜桃| 亚洲女与黑人做爰| 欧美三电影在线| 日韩电影在线免费| www国产精品av| 国产91精品露脸国语对白| 国产精品美女久久久久aⅴ国产馆| 成人午夜精品在线| 亚洲美女视频一区| 欧美日韩三级视频| 六月丁香婷婷色狠狠久久| 久久久99精品久久| 色欧美片视频在线观看在线视频| 亚洲综合丁香婷婷六月香| 91精品国产日韩91久久久久久| 久久99热国产| 国产精品视频在线看| 色婷婷香蕉在线一区二区| 日韩和欧美的一区| 久久久国产午夜精品| 色综合久久综合网| 日韩精品电影一区亚洲| 久久久美女毛片| 色综合久久久久综合体桃花网| 香蕉加勒比综合久久| 亚洲精品一区二区三区福利| 91在线国产观看| 日韩av一二三| 国产精品色哟哟| 欧美狂野另类xxxxoooo| 国产精品一区二区91| 亚洲欧美aⅴ...| 精品毛片乱码1区2区3区| 大白屁股一区二区视频| 亚洲成av人影院在线观看网| 精品99999| 91福利视频网站| 国产毛片精品国产一区二区三区| 亚洲精品精品亚洲| 精品国产伦一区二区三区观看体验| 99久久免费精品| 极品尤物av久久免费看| 一区二区三区.www| 国产网红主播福利一区二区| 欧美熟乱第一页| 国产白丝精品91爽爽久久| 午夜精品一区二区三区电影天堂| 欧美激情一区二区三区不卡| 欧美精品成人一区二区三区四区| 国产999精品久久| 亚洲成在线观看| 欧美激情一区在线观看| 日韩一本二本av| 91九色02白丝porn| 国产精品99久久久久| 青青青伊人色综合久久| 亚洲欧美视频一区| 国产日韩亚洲欧美综合| 欧美一区二区精品| 欧美在线观看视频一区二区| 丁香婷婷综合色啪| 久久av中文字幕片| 视频一区二区国产| 亚洲最大的成人av| 中文字幕日韩一区二区| 久久网这里都是精品| 欧美精品在欧美一区二区少妇| 99久久99久久精品免费看蜜桃| 国内精品伊人久久久久影院对白| 亚洲chinese男男1069| 亚洲欧美日韩国产一区二区三区| 国产欧美精品区一区二区三区 | 一区二区三区日本| 中文字幕免费一区| 久久麻豆一区二区| 精品三级av在线| 91精品啪在线观看国产60岁| 欧美日韩一区不卡| 色天使久久综合网天天| 99久久久精品| 99久久国产综合色|国产精品| 国产电影精品久久禁18| 国模套图日韩精品一区二区| 美女诱惑一区二区| 日本亚洲天堂网| 日韩电影免费在线| 青青草原综合久久大伊人精品 | 韩国在线一区二区| 韩国女主播成人在线观看| 毛片一区二区三区| 精品一区二区在线观看| 精品一区二区三区久久久| 久久99精品久久久久久动态图|