wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

無刷云臺(tái)代碼分析

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年08月04日   【字體:

1、_044.ino為主程序
void loop() 為主程序大循環(huán)
主要功能讀取MPU6050平計(jì)算出相應(yīng)數(shù)據(jù)
2、定時(shí)中斷驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)

//用這個(gè)程序改多軸飛控一定很穩(wěn)定?梢杂盟鳛橐粋(gè)模塊把算出的數(shù)據(jù)發(fā)給KK_C再進(jìn)行控制。
/********************************/
/* Motor Control Routines       */
/********************************/
ISR( TIMER1_OVF_vect )
{//定時(shí)中斷嗎?在這里輸出電機(jī)控制信號(hào)嗎?
  freqCounter++;
  if(freqCounter==(CC_FACTOR/MOTORUPDATE_FREQ))
  {//中斷CC_FACTOR/MOTORUPDATE_FREQ次執(zhí)行以下程序 即輸出頻率

    // Move pitch and roll Motor
    deviderCountPitch++;//這里用計(jì)數(shù)的方式有什么作用喃?pitchDevider越大時(shí)延時(shí)會(huì)越長,好像不太好。直接執(zhí)行不好嗎?
    //if(abs(pitchDevider)>=1)  //胥擬改進(jìn) 大于或等于1說明有數(shù)據(jù)才進(jìn)行調(diào)整,免得電機(jī)不斷輸出發(fā)熱和抖動(dòng)
    if(deviderCountPitch  >= abs(pitchDevider))  //abs(pitchDevider)=計(jì)算參數(shù)的絕對值,即不算符號(hào),只管數(shù)值
       //分析如果pitchDevider=0時(shí),每次都會(huì)執(zhí)行它,用問題嗎?=0時(shí)會(huì)不斷輸出到電機(jī),有點(diǎn)問題哦!
    {//Roll電機(jī)
      fastMoveMotor(config.motorNumberRoll, rollDirection,pwmSinMotorRoll);
      deviderCountRoll=0;
    }
    freqCounter=0;
  }
}
//=======================================
fastMoveMotor電機(jī)驅(qū)動(dòng)子程序

// Hardware Abstraction for Motor connectors,
// DO NOT CHANGE UNLES YOU KNOW WHAT YOU ARE DOING !!!
#define PWM_A_MOTOR1 OCR2A
#define PWM_B_MOTOR1 OCR1B
#define PWM_C_MOTOR1 OCR1A

#define PWM_A_MOTOR0 OCR0A
#define PWM_B_MOTOR0 OCR0B
#define PWM_C_MOTOR0 OCR2B
//以上是引腳定義嗎?
void fastMoveMotor(uint8_t motorNumber, int dirStep,uint8_t* pwmSin)
{//fastMoveMotor(uint8_t motorNumber(電機(jī)選擇?X軸/Y軸), int dirStep(正轉(zhuǎn)1、反轉(zhuǎn)-1或不轉(zhuǎn)0),uint8_t* pwmSin(數(shù)據(jù)表首地址256字節(jié)))
  if (motorNumber == 0)
  {//改這里就可以改成步進(jìn)電機(jī)的了。:)
    //用單片機(jī)寫個(gè)步進(jìn)電機(jī)驅(qū)動(dòng),再用兩個(gè)端口進(jìn)行控制。一個(gè)端口控制方向,一個(gè)端口控制步數(shù)
    currentStepMotor0 += dirStep;//currentStepMotor0 為原來的位置 dirStep=(-1,0,1)
    PWM_A_MOTOR0 = pwmSin[currentStepMotor0];//查表輸出A
    PWM_B_MOTOR0 = pwmSin[(uint8_t)(currentStepMotor0 + 85)];//查表輸出B
    PWM_C_MOTOR0 = pwmSin[(uint8_t)(currentStepMotor0 + 170)];//查表輸出C 總步數(shù)85*3=255為一圈
  }
 
  if (motorNumber == 1)
  {
    currentStepMotor1 += dirStep;
    PWM_A_MOTOR1 = pwmSin[currentStepMotor1] ;
    PWM_B_MOTOR1 = pwmSin[(uint8_t)(currentStepMotor1 + 85)] ;
    PWM_C_MOTOR1 = pwmSin[(uint8_t)(currentStepMotor1 + 170)] ;
  }
}

//==================================================
  pitchDevider = constrain(maxDegPerSecondPitch / (pitchPID + 0.000001), -15000,15000)*2;
  pitchDirection = sgn(pitchDevider) * config.dirMotorPitch;//計(jì)算電機(jī)輸出數(shù)據(jù)-1,0,1 只轉(zhuǎn)一點(diǎn)點(diǎn)
  rollDevider = constrain(maxDegPerSecondRoll / (rollPID + 0.000001), -15000,15000)*2;
  rollDirection = sgn(rollDevider) * config.dirMotorRoll;//計(jì)算電機(jī)輸出數(shù)據(jù)-1,0,1


int8_t sgn(int val) {
  if (val < 0) return -1;
  if (val==0) return 0;
  return 1;
}
//以下是主程序分析
//功能分析:除了通過陀螺儀和加速度儀數(shù)據(jù)運(yùn)算調(diào)整兩個(gè)電機(jī)移動(dòng)以外還加入了外部控制的調(diào)整量
//主程序內(nèi)只算出移動(dòng)數(shù)據(jù),在中斷中才不斷的進(jìn)行輸出動(dòng)作
/**********************************************/
/* Main Loop                                  */
/**********************************************/
int count=0;
void loop()
{
 

  sampleTimePID = (micros()-timer)/1000000.0/CC_FACTOR; // in Seconds!  檢測時(shí)間控制設(shè)置   通過CC_FACTOR調(diào)節(jié)因子調(diào)節(jié)大?
   //得到上次運(yùn)行到本次運(yùn)行的時(shí)間長短,用于PID算法
  timer = micros();//存本次時(shí)間,用于和下次時(shí)間的比較。
  //定時(shí)器會(huì)溢出嗎?要進(jìn)行相應(yīng)處理嗎?大約50天溢出一次,要進(jìn)行確認(rèn)!
  
  // Update raw Gyro //更新陀螺儀數(shù)據(jù)
  updateRawGyroData(&gyroRoll,&gyroPitch);//讀取陀螺儀數(shù)據(jù)
   
  // Update DMP data approximately at 50Hz to save calculation time.


  if(config.useACC==1)//根據(jù)變量控制程序流程
  {//流程1 執(zhí)行頻率不同
   //周期長
    count++;
    // Update ACC data approximately at 50Hz to save calculation time.
    if(count == 20)
    {
      sampleTimeACC = (micros()-timerACC)/1000.0/CC_FACTOR; // in Seconds * 1000.0 to account for factor 1000 in parameters
      timerACC=timer;//計(jì)算時(shí)間差值
      //{Serial.print(sampleTimeACC,5);Serial.print(" ");Serial.println(sampleTimePID,5);} 
      mpu.getAcceleration(&x_val,&y_val,&z_val);//讀三軸加速度值中嗎?
    }
    if(count == 21)
    //roll角度控制計(jì)算
    rollAngleACC = 0.9 * rollAngleACC + 0.1 * ultraFastAtan2(-y_val,-z_val); //rollAngleACC = 0.8 * rollAngleACC + atan2(-y_val,-z_val)*57.2957795 * 0.2;
    if(count == 22)
    {//pitch角度控制計(jì)算
      pitchAngleACC = 0.9 * pitchAngleACC + 0.1 * -ultraFastAtan2(-x_val,-z_val);//角度計(jì)算嗎?
      count=0;
      if(config.accOutput==1){Serial.print(pitchAngleACC);Serial.print(" ACC ");Serial.println(rollAngleACC);}
//      {Serial.print(gyroPitch);Serial.print(" ACC G ");Serial.println(gyroRoll);}
    }
  }
  else // Use DMP
  {//流程2
   //周期短
   //不進(jìn)行加速度計(jì)算嗎?
    if(count == 2)
    {//pitch角度控制計(jì)算
      pitchAngleACC = -asin(-2.0*(q.x * q.z - q.w * q.y)) * 180.0/M_PI;//角度計(jì)算嗎?
      count=0;
      if(config.dmpOutput==1){Serial.print(pitchAngleACC);Serial.print(" DMP ");Serial.println(rollAngleACC);}
//      {Serial.print(gyroPitch);Serial.print(" DMP G ");Serial.println(gyroRoll);}
    }
    if(count == 1)
    {//roll角度控制計(jì)算
      rollAngleACC = ultraFastAtan2(2.0*(q.y * q.z + q.w * q.x), q.w * q.w - q.x * q.x - q.y * q.y + q.z * q.z);
      rollAngleACC = -1*(sgn(rollAngleACC) * 180.0 - rollAngleACC);//角度計(jì)算嗎?
      count++;
    }
    if(mpuInterrupt) 判斷MPU 中斷標(biāo)志嗎?
    { //兩個(gè)不同地方的sampleTimeACC有沖突嗎?
      sampleTimeACC = (micros()-timerACC)/1000.0/CC_FACTOR; // in Seconds * 1000.0 to account for factor 1000 in parameters
      timerACC=timer;//計(jì)算時(shí)間差值通過CC_FACTOR調(diào)節(jié)因子調(diào)節(jié)大?
     //有中斷產(chǎn)生時(shí)讀取MPU6050的相應(yīng)數(shù)據(jù)嗎?
      mpu.getFIFOBytes(fifoBuffer, 18); // I2C 800000L : 1300-1308 micros fo 42 bytes, ~540 micros for 16bytes
      mpu.dmpGetQuaternion(&q, fifoBuffer); // I2C 800000L : 64-68 micros
      mpuInterrupt = false;
      count++;
    }
  }
 
//      {Serial.print(pitchAngleACC);Serial.print(" ");Serial.println(rollAngleACC);}   // 調(diào)試時(shí)往串口發(fā)數(shù)據(jù) AngleACC角度控制數(shù)據(jù)
 
   
  if(config.rcAbsolute==1) // Absolute RC control 絕對控制
  {//方式1?
    // Get Setpoint from RC-Channel if available.
    // LPF on pitchSetpoint
    if(updateRCPitch==true)//手動(dòng)修正判斷嗎?
    {
      pulseInPWMPitch = constrain(pulseInPWMPitch,MIN_RC,MAX_RC);
      pitchSetpoint = 0.025 * (config.minRCPitch + (float)(pulseInPWMPitch - MIN_RC)/(float)(MAX_RC - MIN_RC) * (config.maxRCPitch - config.minRCPitch)) + 0.975 * pitchSetpoint;
      updateRCPitch=false;
    }
    if(updateRCRoll==true)//手動(dòng)修正判斷嗎?
    {
      pulseInPWMRoll = constrain(pulseInPWMRoll,MIN_RC,MAX_RC);
      rollSetpoint = 0.025 * (config.minRCRoll + (float)(pulseInPWMRoll - MIN_RC)/(float)(MAX_RC - MIN_RC) * (config.maxRCRoll - config.minRCRoll)) + 0.975 * rollSetpoint;
      updateRCRoll=false;
    }
  }
  else // Proportional RC control
  {//方式2?
    if(updateRCPitch==true)//手動(dòng)修正判斷嗎?
    {
      pulseInPWMPitch = constrain(pulseInPWMPitch,MIN_RC,MAX_RC);
      if(pulseInPWMPitch>=MID_RC+RC_DEADBAND)
      {
        pitchRCSpeed = 0.1 * (float)(pulseInPWMPitch - (MID_RC + RC_DEADBAND))/ (float)(MAX_RC - (MID_RC + RC_DEADBAND)) + 0.9 * pitchRCSpeed;
      }
      else if(pulseInPWMPitch<=MID_RC-RC_DEADBAND)
      {
        pitchRCSpeed = -0.1 * (float)((MID_RC - RC_DEADBAND) - pulseInPWMPitch)/ (float)((MID_RC - RC_DEADBAND)-MIN_RC) + 0.9 * pitchRCSpeed;
      }
      else pitchRCSpeed = 0.0;
      updateRCPitch=false;
    }
    if(updateRCRoll==true)//手動(dòng)修正判斷嗎?
    {
      pulseInPWMRoll = constrain(pulseInPWMRoll,MIN_RC,MAX_RC);
      if(pulseInPWMRoll>=MID_RC+RC_DEADBAND)
      {
        rollRCSpeed = 0.1 * (float)(pulseInPWMRoll - (MID_RC + RC_DEADBAND))/ (float)(MAX_RC - (MID_RC + RC_DEADBAND)) + 0.9 * rollRCSpeed;
      }
      else if(pulseInPWMRoll<=MID_RC-RC_DEADBAND)
      {
        rollRCSpeed = -0.1 * (float)((MID_RC - RC_DEADBAND) - pulseInPWMRoll)/ (float)((MID_RC - RC_DEADBAND)-MIN_RC) + 0.9 * rollRCSpeed;
      }
      else rollRCSpeed = 0.0;
      updateRCRoll=false;
    }
  }
 
 //480-900
//計(jì)算陀螺儀數(shù)據(jù)
  if((fabs(rollRCSpeed)>0.0)&& (rollAngleACC<config.maxRCRoll)&& (rollAngleACC>config.minRCRoll))//判斷rollAngleACC是否在最大值和最小值之間同時(shí) rollRCSpeed的絕對值>0
  {//
    gyroRoll = gyroRoll + config.accelWeight * rollRCSpeed * RC_GAIN;//config.accelWeight=15,config.accelWeight * rollRCSpeed * RC_GAIN為特性修正嗎?還是?
    rollSetpoint = rollAngleACC;
  }
  else//
    gyroRoll = gyroRoll + config.accelWeight * (rollAngleACC - rollSetpoint) /sampleTimeACC;//

  if((fabs(pitchRCSpeed)>0.0)&&(pitchAngleACC<config.maxRCPitch)&&(pitchAngleACC>config.minRCPitch))
  {
    gyroPitch = gyroPitch + config.accelWeight * pitchRCSpeed * RC_GAIN;
    pitchSetpoint = pitchAngleACC;
  }
  else
    gyroPitch = gyroPitch + config.accelWeight * (pitchAngleACC - pitchSetpoint) /sampleTimeACC;//加入加速度計(jì)算出的調(diào)節(jié)系數(shù)嗎?
     

//     pitchSetpoint=constrain(pitchSetpoint,config.minRCPitch,config.maxRCPitch);
//      rollSetpoint=constrain(rollSetpoint,config.minRCRoll,config.maxRCRoll);

//630-1130
//計(jì)算電機(jī)數(shù)據(jù)
  pitchPID = ComputePID(sampleTimePID,gyroPitch,0.0, &pitchErrorSum, &pitchErrorOld,config.gyroPitchKp,config.gyroPitchKi,config.gyroPitchKd,maxDegPerSecondPitch);
  rollPID = ComputePID(sampleTimePID,gyroRoll,0.0, &rollErrorSum, &rollErrorOld,config.gyroRollKp,config.gyroRollKi,config.gyroRollKd,maxDegPerSecondRoll);
//
/*
float ComputePID(float SampleTimeInSecs, float in, float setPoint, float *errorSum, float *errorOld, float Kp, float Ki, float Kd, float maxDegPerSecond)
{
//PID算法說明,PID 分為P比例調(diào)節(jié),I積分 預(yù)設(shè)置和反饋值之間的差值在時(shí)間上的累積,累積值大到一定時(shí)才處理,有滯后控制的作用。D微分項(xiàng)調(diào)節(jié)即根據(jù)趨勢作提前量調(diào)整,有提前控制的作用
  float error = setPoint - in;//計(jì)算差值,0.0-gyroRoll
//算法分析&rollErrorSum+=(0.0-gyroRoll)然后限幅
  // Integrate Errors
  *errorSum += error;//積分
  *errorSum = constrain(*errorSum, -maxDegPerSecond ,maxDegPerSecond);//限幅
 
  /*Compute PID Output*/
//PID算法代碼
  float out = (Kp * error + SampleTimeInSecs * Ki * *errorSum + Kd * (error - *errorOld) / (SampleTimeInSecs + 0.000001))/1000.0;
//1、比例調(diào)節(jié)算法P:當(dāng)前error*Kp(error為差值,Kp為P值即比例調(diào)節(jié)量,可進(jìn)行人工設(shè)置、基礎(chǔ)的調(diào)整速度只根據(jù)差值大小確定調(diào)整快慢)+2、積分調(diào)節(jié)算法I:總error*Ki*SampleTimeInSecs(差值積分總值*errorSum(是角度值嗎?)*調(diào)節(jié)因子Ki*時(shí)間變量+3、微分D 調(diào)節(jié),即根據(jù)在一定時(shí)間內(nèi)的變化量來確定調(diào)整效果的快慢來作一個(gè)提前量調(diào)整。調(diào)整因子Kd*變化量(error - *errorOld)/時(shí)間
//D的作用就是在一定時(shí)間內(nèi)判斷差值的變化趨勢。越大就調(diào)的調(diào)的越快。越少調(diào)的越慢。
//I的算法好像有點(diǎn)問題,不像網(wǎng)上說的那樣嗎?
  *errorOld = error;// &rollErrorOld=error 存本次的差值,以便和下一次角速度即差值比較

  return constrain(out, -maxDegPerSecond ,maxDegPerSecond);//返回限幅后的數(shù)據(jù)out
}
*/
//1250-1700

  pitchDevider = constrain(maxDegPerSecondPitch / (pitchPID + 0.000001), -15000,15000)*2;//調(diào)整信號(hào)
  pitchDirection = sgn(pitchDevider) * config.dirMotorPitch;//計(jì)算電機(jī)輸出數(shù)據(jù)1、0、-1只轉(zhuǎn)動(dòng)一點(diǎn)點(diǎn) 0不轉(zhuǎn)
  rollDevider = constrain(maxDegPerSecondRoll / (rollPID + 0.000001), -15000,15000)*2;//2、調(diào)整信號(hào) constrain的作用是限幅,功能為如果maxDegPerSecondRoll / (rollPID + 0.000001)小于-15000則返回-15000,大于15000則返回15000。否則返回原來的值       2、+ 0.000001的作用是為了防止rollPID為0嗎?3、(rollPID + 0.000001)為角度值?不像但和角度相關(guān)
        //maxDegPerSecondRoll = MOTORUPDATE_FREQ * 1000.0 / N_SIN / (config.nPolesMotorRoll/2) * 360.0;//轉(zhuǎn)動(dòng)的最大值嗎?
  
  // Initialize Motor Movement (初始化 電機(jī) 運(yùn)動(dòng)) 最大值?
 // maxDegPerSecondPitch = MOTORUPDATE_FREQ * 1000.0 / N_SIN / (config.nPolesMotorPitch/2) * 360.0;
  //maxDegPerSecondRoll = MOTORUPDATE_FREQ * 1000.0 / N_SIN / (config.nPolesMotorRoll/2) * 360.0;

  rollDirection = sgn(rollDevider) * config.dirMotorRoll;//計(jì)算電機(jī)輸出數(shù)據(jù)1、0、-1
//1400-1850

 

//Serial.println( (micros()-timer)/CC_FACTOR);
  sCmd.readSerial();

}

關(guān)閉窗口

相關(guān)文章

蜜桃av免费在线观看| 国产一区欧美日韩| 亚洲少妇自拍| 国产成人精品亚洲777人妖 | 欧美日韩国产网站| 国产精品一线| 黄色日韩在线| 成人永久aaa| 亚洲欧美日韩小说| 在线不卡中文字幕| 中文字幕无线精品亚洲乱码一区| 日本一本a高清免费不卡| 欧美二区在线观看| 亚洲码在线观看| 91精品国产色综合| 久久久久九九九| 免费在线观看的av网站| 少妇按摩一区二区三区| 黄色av一级片| 欧美高清videos性极品| 日本我和搜子同居的日子高清在线| 在线观看a视频| 啪啪av大全导航福利综合导航| 香蕉视频亚洲一级| heyzo久久| 精品一区二区在线视频| 一级女性全黄久久生活片免费| 精品成人在线观看| 国产精品99久久久久久久久久久久| 日韩av电影免费在线观看| 91制片厂毛片| 欧美日韩三级在线观看| 亚洲色大成网站www| 国产va在线观看| xxxx另类黑人| 国产日韩欧美一区二区三区| 久久国产日韩欧美精品| 亚洲一区在线观看免费| 亚洲免费小视频| 96sao精品视频在线观看| 999一区二区三区| 亚洲一区二区三区日韩| 国产黄色小视频在线观看| 乱小说综合网站| 国产不卡人人| 亚洲国产精品日韩专区av有中文| 97久久精品人人做人人爽| 欧美日韩一区二区三区高清| 久久久久中文字幕| 亚洲欧美日产图| 老司机免费视频| 中文字幕日日夜夜| 天天看天天色| 韩国久久久久久| 欧美成人一区二免费视频软件| 99热这里都是精品| 91精品国产色综合久久不卡蜜臀 | 亚洲第一精品在线观看| 欧美69xx性欧美| 国产精品一区二区三区四区色| 国产精品视频一区二区三区综合| 视频在线在亚洲| 婷婷综合久久一区二区三区| 精品国产91九色蝌蚪| 国产有码一区二区| 麻豆传传媒久久久爱| 久草视频在线资源站| 国产精品视频一区麻豆| 亚洲欧美成人影院| 亚洲国产一成人久久精品| 中文字幕一区二区在线观看| 懂色av一区二区三区免费看| 欧美日韩一区中文字幕| 国产精品国产福利国产秒拍| 国产男女无遮挡| 中日韩黄色大片| 芬兰videosfree性少妇| 欧美黄色网页| 日本中文字幕一区二区视频| 欧美色图片你懂的| 成人精品一区二区三区电影黑人 | 在线播放免费| 久久综合社区| 久久久精品国产99久久精品芒果| 日韩高清a**址| 久久riav| 国产三级在线观看完整版| 男人插女人下面视频| av在线官网| 一区二区三区日本久久久 | 亚洲一区3d动漫同人无遮挡| 人妻互换一区二区激情偷拍| 国产伦精品一区二区三区视频小说| 欧美黑人猛交| 99国产精品视频免费观看一公开 | 免费黄色电影在线观看| 欧美精品成人| 欧美色视频日本高清在线观看| 国产91精品久久久久| 看欧美ab黄色大片视频免费| 国产又粗又猛视频免费| 黄网站在线观看| 91精品福利| 午夜精品久久久久久久久| 日韩av电影中文字幕| 激情久久综合网| 人人妻人人澡人人爽久久av| а√资源新版在线天堂| 亚洲欧美日韩视频二区| 欧美一区二区在线免费播放| 久久99导航| 唐朝av高清盛宴| 黄色网址入口| 精品美女久久久| 91亚洲一区| 一区二区三区日韩欧美| 国产成人高潮免费观看精品| 佐佐木明希电影| 翔田千里精品久久一区二| 免费在线小视频| 国产一区二区三区四区五区入口 | 99麻豆久久久国产精品免费 | 玖草视频在线| 欧洲乱码伦视频免费| 亚洲第一av色| 91成人理论电影| 国产精品久久免费观看| xfav资源| 欧美欧美黄在线二区| 五月婷婷综合在线| 国产精品一区二区三区在线观| 日本高清黄色片| 国产99re| 伊人久久成人| 日韩一区二区电影| 日精品一区二区三区| 欧美brazzers| 综合 欧美 亚洲日本| 九九热在线视频免费观看| 成功精品影院| 亚洲乱码国产乱码精品精的特点 | 日本影音先锋电影| 精品精品精品| 亚洲成人免费电影| 国产精品久久久久久久久久直播 | 欧美激情影音先锋| 熟女人妻一区二区三区免费看| 又长又粗又大又爽| 天堂日韩电影| 欧美三级一区二区| 日韩中文字幕在线不卡| 日本免费不卡视频| 国产一区二区久久久久| 亚洲第一福利视频在线| 日韩性感在线| www.亚洲天堂.com| 精品三级在线| 午夜婷婷国产麻豆精品| 视频一区二区三区免费观看| 国产又爽又黄免费软件| 日韩漫画puputoon| 午夜影院在线观看欧美| 伊人久久大香线蕉午夜av| 日本高清视频免费看| 亚洲91网站| 欧美视频日韩视频| 性欧美大战久久久久久久| 欧美乱强性伦xxxxx| 国产欧美日韩在线观看视频| 日韩精品一区二区三区在线 | 亚洲丁香婷深爱综合| 国产91对白刺激露脸在线观看| 欧美free性69| 色爱综合网欧美| 日韩av在线网| 欧美午夜aaaaaa免费视频| jizzjizz日本护士免费| av成人国产| 欧美精品制服第一页| 国产麻豆xxxvideo实拍| 欧美福利网站| 视频在线观看一区| 国产喂奶挤奶一区二区三区| 国产精品天天狠天天看| 精品午夜福利视频| 在线a人片免费观看视频| 国产成人精品亚洲777人妖| 午夜精品久久久久久久男人的天堂 | 成人免费在线视频网站| 国产精品一区二区三区四| 呦呦在线视频| 国产欧美精品一区二区色综合朱莉| 91精品国产自产在线| 日本aⅴ在线观看| eeuss影院www在线观看| 99在线精品免费| 国产欧美日韩中文| 国产一级免费观看| 欧美国产大片| 亚洲aⅴ怡春院| 在线视频不卡国产| 男人天堂影院| 999精品一区| 这里只有精品在线播放| 中文幕无线码中文字蜜桃| 天堂资源最新在线| 久久综合色之久久综合| 国产精品v欧美精品∨日韩| 中文av免费观看| 国产精品第一国产精品| 欧美色视频日本版| www.久久久精品| 91婷婷韩国| 麻豆国产91在线播放| 日本最新高清不卡中文字幕| 中文字幕欧美人妻精品| 99九九久久| 色综合激情久久| 亚洲中文字幕无码av永久| av黄色网址| 日韩成人免费看| 国产精品777| 午夜一区二区三区四区| 国产人妖ts一区二区| 精品精品欲导航| 亚洲av无码成人精品区| 天堂中文在线视频| 日韩一区在线免费观看| 中文字幕黄色大片| www.91视频com| 亚洲视频播放| 成人亲热视频网站| 午夜精品久久久久久久91蜜桃| 天堂在线精品| 中文字幕日韩精品有码视频| 国产伦精品一区二区三区视频女| 亚洲羞羞网站| 亚洲在线视频网站| 女人色极品影院| 99re6在线视频精品免费| 麻豆免费精品视频| 亚洲xxx自由成熟| 欧美一区,二区| 精品国产一区二区三区噜噜噜 | 在线观看亚洲成人| 污污视频在线免费| 成年人在线看| 一区二区三区中文字幕精品精品| 欧美a级免费视频| 亚洲欧美中文字幕在线观看| 成人午夜视频在线观看| 欧美日韩在线不卡一区| 欧美行性性性o00x| 国产一区二区三区美女| 精品亚洲第一| 欧美精品se| 亚洲影院免费| 精品欧美日韩| 精品国内一区二区三区免费视频| 免费欧美日韩| 亚洲最大的成人网| 91电影91视频| 久久福利资源站| 亚洲国产精品va| 黄色国产在线视频| av在线私库| 日韩一级片在线播放| 最近中文字幕免费| 亚洲第一会所| 精品国产免费人成在线观看| 国产真实乱人偷精品人妻| 亚洲欧美韩国| 日韩国产中文字幕| 久久久久久天堂| 超碰精品在线观看| 精品激情国产视频| 精品女同一区二区三区| 欧美国内亚洲| 国产美女精品免费电影| 亚洲国产中文字幕在线| 蜜乳av另类精品一区二区| 国产一区二区三区无遮挡| 国产成人综合亚洲欧美在| 蜜桃视频免费观看一区| 一本久道久久综合狠狠爱亚洲精品| 操她视频网站| 久久久亚洲欧洲日产国码αv| 在线综合视频网站| 激情视频免费观看在线| 伊人婷婷欧美激情| 91性高潮久久久久久久| 国产成人精品一区二区三区免费| 亚洲精选在线观看| 日韩精品久久久久久久| 视频精品在线观看| 亚洲最大成人网色| 女明星视频黄又免费| 99久久婷婷国产综合精品电影 | 夜色激情一区二区| 97超碰成人在线| 久草免费在线观看| 日韩成人中文电影| 欧美a视频在线观看| 亚洲啊v在线观看| 91精品国产综合久久久久久丝袜| 小鲜肉gaygays免费动漫| a美女胸又www黄视频久久| 日韩av综合在线观看| 免费污视频在线观看| 亚洲а∨天堂久久精品喷水| 国产精品第108页| 亚洲三级精品| 粉嫩av四季av绯色av第一区| av免费在线播放| 亚洲色图清纯唯美| 老头老太做爰xxx视频| 精品国产一区二区三区成人影院| 2019精品视频| 青春娱乐分类视频精品2动漫| 久久久欧美精品sm网站| 五月婷婷丁香色| 性感女国产在线| 久久久久久午夜| 四虎地址8848jia| 99视频超级精品| 国产精品无码av无码| 亚洲成人短视频| 久久91超碰青草是什么| 天天干,天天操,天天射| 日韩av一区二| 9久久9毛片又大又硬又粗| 污污视频在线| 欧美精品一区二区三区四区 | 91在线国产电影| 久久全国免费久久青青小草| 久久午夜色播影院免费高清| 亚洲高清av一区二区三区| 福利一区二区免费视频| 国产精品小说在线| h片在线观看视频| 五月天婷婷综合| 人妻熟人中文字幕一区二区| 伊人情人综合网| 日韩三级电影网站| 日本最新在线视频| 色青青草原桃花久久综合| 四虎成人免费电影| 中文字幕乱码日本亚洲一区二区 | 亚洲狠狠婷婷| 亚洲第一页在线视频| 蜜芽在线免费观看| 国产一区二区久久精品| 中文字幕久热在线精品| 国产日韩精品久久久| 性色av蜜臀av色欲av| 欧美18xxxx| 日韩美女一区| 在线视频91p| 在线免费看av不卡| 一级美女在线| 婷婷开心激情综合| 久久久久人妻一区精品色欧美| 日韩成人免费电影| 日本中文字幕高清| 亚洲精品高潮| 欧美一级日本a级v片| 日本福利在线| 中文字幕在线观看日韩| 成年大片免费视频播放二级| 欧美性生交大片免网| 精品国产免费观看| 久久激情一区| 97超碰免费在线观看| 亚洲欧美校园春色| αv一区二区三区| www久久日com| 久久久视频在线| 天天草天天草| 亚洲人成在线免费观看| 欧美最猛性xxxxxhd| 欧美激情资源网| 日韩美女视频网站| 国产综合色精品一区二区三区| 想看黄色一级片| 国产精品久久久久久久久久10秀 | 亚洲区小说区图片区qvod| 欧洲一区二区日韩在线视频观看免费 | 国产精品欧美日韩| 高清免费观看在线| www.欧美精品| 成年人视频网址| 欧美一级日韩免费不卡| 四虎永久网址| 精品国产乱码久久久久久虫虫漫画 | 亚洲人一二三区| 日本一级片免费看| 久久国产成人午夜av影院| b站大片免费直播| 亚洲少妇诱惑| 亚洲美女爱爱视频|