久久大香萑太香蕉av丨樱花草在线社区www日本影院丨婷婷久久五月丨久综合网丨久久伊人99丨久草免费av丨狠狠狠色丨国产精品天天干丨日产精品久久久久久久蜜臀丨国内揄拍国内精品少妇国语丨蜜桃av鲁一鲁一鲁一鲁俄罗斯的丨丰满人妻一区二区三区免费视频丨日韩日比视频丨九九视频精品在线丨性av+色av丨av一区二区三区在线观看丨婷婷色站丨台湾佬自拍偷区亚洲综合丨波多野结衣乱码中文字幕丨无码中文字幕乱码一区

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 19201|回復: 15

單片機MCP制作數控雕刻機3D打印機

[復制鏈接]
1#
發表于 2016-8-20 23:56:23 | 只看該作者 |倒序瀏覽 |閱讀模式
本帖最后由 1五湖四海1 于 2016-8-21 00:09 編輯 ) V9 }. m4 Q' ^3 I" d# j
# ^0 ?) |, X- R7 |9 o
    以前制作過CNC雕刻機,是用MACH3作為上位機控制,硬件是采用PC接并口輸出脈沖和方向使能信號經過隔離驅動步進電機驅動器,步進電機驅動是采用TB6560芯片控制。最后就接到步進電機。機械是用鋁合金制作,主要部件有三個1605的滾珠絲杠,多個運動滑塊等制作。用這臺DIY CNC雕刻機可以雕刻木頭塑料等東西。當時沒有一直玩下去,現在發現網上有用單片機制作的雕刻機挺精巧的現在分享給大家。
2 \6 v) E, A4 p3 |5 q8 J) D" m   GRBL CNC 3D打印機,這就是我說的可以用單片機來控制的3D打印機,我先照著百度科普下grbl,Grbl是性能高,成本低,基于并口運動控制,用于CNC雕刻。它可以運行在Vanilla Arduino (Duemillanove/Uno) 只要它配備了Atmega 328型芯片。 控制器由C編寫并優化,利用了AVR 芯片的每一個靈巧特性來實現精確時序和異步控制。它可以保持超過30kHz的穩定、無偏差的控制脈沖 它接受標準的G代碼而且通過了數個CAM工具的輸出測試。弧形、圓形和螺旋的運動都可以像其他一些基本G代碼命令一樣完美支持。函數和變量目前并不支持,但是會作為預處理器包含在將來發布的版本之中。 Grbl 包含完整的前瞻性加速度控制。它意味著控制器將提前16到20個運動來規劃運行速度,以實現平穩的加速和無沖擊的轉彎。Grbl是性能高,成本低,基于并口運動控制,用于CNC雕刻。它可以運行在Vanilla Arduino (Duemillanove/Uno) 只要它配備了Atmega 328型芯片。 控制器由C編寫并優化,利用了AVR 芯片的每一個靈巧特性來實現精確時序和異步控制。它可以保持超過30kHz的穩定、無偏差的控制脈沖 它接受標準的G代碼而且通過了數個CAM工具的輸出測試。弧形、圓形和螺旋的運動都可以像其他一些基本G代碼命令一樣完美支持。函數和變量目前并不支持,但是會作為預處理器包含在將來發布的版本之中。 Grbl 包含完整的前瞻性加速度控制。它意味著控制器將提前16到20個運動來規劃運行速度,以實現平穩的加速和無沖擊的轉彎。很棒吧!開始玩起。
" u4 n5 q$ P0 F. w8 G* s% l    還沒有雕刻機的機械部分可以用廢舊光驅制作個微型雕刻機運動平臺。雕刻機最重要的是主控程序這次用 Arduino/AVR328單片機,價格在15元左右,主控程序是上面提到的目前很火的開源
的GRBL,還有一種基于STM32平臺的開源主控程序Dlion也不錯可以替代grbl。如果從性能比較這兩個方案,顯然是stm32平臺運行速度更快畢竟他是32單片機呀!  u; O2 A; ^! m; Q6 z+ ^

' k; G7 C% S% Y' p4 z4 M% M2 u
- @& m% M" K, y5 U1 M
    下面介紹小這個些主控程序主要干的事,通過串口PC和主控板通訊,PC命令給控制板,控制板接收命令做不同的響應,PC可以發G代碼給主控板,接收完成后可以自動開始雕刻任務。
! o- U1 b; U6 X6 E; }5 z          在介紹下G代碼因為G代碼是雕刻機的核心部分
+ |3 I/ i& I( n, u6 tG代碼是數控程序中的指令。一般都稱為G指令。5 c0 e5 {) R+ x- W
G00------快速定位
7 _) A) X4 l& u& _! U& R4 YG01------直線插補9 F9 J8 _, O/ @+ f8 c
G02------順時針方向圓弧插補
5 _9 T# {; N& I* y! I- uG03------逆時針方向圓弧插補8 m! Z6 \# N$ l* W5 r
G04------定時暫停
+ @0 o7 f7 h9 U: Q4 T/ q* K' eG05------通過中間點圓弧插補) ~: s, h/ P, e; x" |2 B
G06------拋物線插補
* M1 y* A4 _; f3 ^" s; \" r3 `G07------Z 樣條曲線插補+ y* N4 Y% `( O. h( [5 G- S- i
G08------進給加速
$ S- m& R, b+ @) hG09------進給減速& k5 B* Y2 l3 M6 f$ f
G10------數據設置# m; h  c) `3 e8 n* {; i/ H
G16------極坐標編程2 t6 A, {5 x( E: F
G17------加工XY平面% q5 _; C5 p1 @& x' Y" d
G18------加工XZ平面
& w2 V8 O% r6 _; yG19------加工YZ平面

6 y3 B3 o" E6 c: H9 }( u核心就是解析G代碼,完成步進電機驅動,和控制主軸開啟關閉,還有插補算法,直線插補,圓弧插補,還有一些步進電機的加減速算法。
3 v- I2 h4 |7 W下面對grbl主結構做介紹
6 q% Q, L( C- x& Smain()主函數首先執行下面初始化函數2 a$ |' X  ^0 }- T
        serial_init();                           // 設置串口波特率和中斷
# H# W! v% M' S5 x/ K0 y        settings_init();                         // 從ROM加載grbl設置
7 x  p1 g& s- D2 ~. J. t; [        stepper_init();                          // 配置步進方向和中斷定時器# k+ k/ J! g. l  N* z
        system_init();                           // 配置引腳分配別針和pin-change中斷
  o# w3 S5 D! H+ {3 d6 E        memset(&sys, 0, sizeof(system_t));          // 清除所有系統變量
3 Z5 m, Z+ g; V9 m  l( R8 s' I, i0 o9 s        sys.abort = true;                           // 中止標識位置位6 x& |1 V4 k2 o, v1 m
        sei();                                         // 使能中斷+ h5 W5 s& F: z) J1 M, V; Y) m# \3 v
  #ifdef HOMING_INIT_LOCK                        // 宏運算(settings.flags & (1 << 4)) != 0結果flags等于執行sys.state = STATE_ALARM( w/ P4 T# {8 V6 R$ t* p- K
                                                // 系統狀態賦值為報警狀態
' c0 m5 l# O) W& f1 H            if (bit_istrue(settings.flags,BITFLAG_HOMING_ENABLE)) { sys.state = STATE_ALARM; }5 A4 F# V5 d5 S# k) _
  #endif
5 E3 }- U" K4 ~5 n+ c_____________________________________________________________________________________________________________________________________. m4 L' v3 x6 [- F% [* p9 R
接下來是一些主要部分初始化
! r1 a' ?# K( y' G! t/ H& ^for(;;) {
0 B6 b% h$ W. I6 r        serial_reset_read_buffer();         //清除串口讀緩沖區
0 {/ V4 u& k% ~) z0 N* b  M9 a% U        gc_init();                         //初始化G代碼功能函數% I8 I; @* P; A' ?2 A
        spindle_init();                        //主軸初始化! q: a1 Z6 E4 T% F% x& ]- P/ Z
        coolant_init();                        //冷卻液初始化
- c) B9 f4 q5 D$ [4 z        limits_init();                         //極限開關初始化5 ?; K* Z! R( @; m1 |
        probe_init();                        //探測部件初始化
- J5 y, ~' \+ |& U7 J4 `* w" r! x* @        plan_reset();                         //清除塊緩沖區和規劃師變量
& N. }5 b+ d6 F3 D& |' h# _1 ^        st_reset();                         //清除步進系統變量。
+ u, h8 h- G) C6 V
- l9 x6 L) q* W" g2 I1 w3 b* U7 i5 L5 b  M4 {3 v
        //下面兩行清除同步gcode和策劃師職位當前系統位置。% C5 x6 _/ g+ [0 }9 A+ W( t
        plan_sync_position();
$ C4 X5 P' B- C8 d1 F% A9 D        gc_sync_position();" ]/ @3 A7 k  [$ r! n7 k

5 X, l2 m5 c6 a; c( Y1 Y
! N" J) Q0 \6 P$ ^        //復位系統變量
8 k- F6 \# d1 @# C  C0 I        sys.abort = false;                //系統中止標志) Q$ n/ {/ x" x% i. I% ^1 O
        sys_rt_exec_state = 0;                //系統標志位變量狀態管理。看到EXEC位掩碼。
" I7 o4 w6 k: _* |# {, q+ K3 j  C        sys_rt_exec_alarm = 0;                //系統標志位變量設置不同的警報。. M) ^- e  Q; k5 g$ i: d- _* i  `
        sys.suspend = false;                //系統暫停標志位變量管理,取消,和安全保護。
0 g6 Q7 k4 l4 X8 N        sys.soft_limit = false;                //限位開關限制狀態機錯誤。(布爾)3 f$ Q# D, S7 G6 d  I6 z  Q+ j

2 F, N4 Q7 k+ R$ h9 ^2 P% T8 n: d! C+ b6 I' Q: i0 C
        protocol_main_loop();                //主協議循環# ]/ f& d% D" U4 s) o- p
}        //& o7 X: p. u4 ?4 V3 Q
_____________________________________________________________________________________________________________________________+ ~/ i$ U( w9 Y; v' Z# R8 ~
進入void protocol_main_loop()函數
5 k0 v0 s% A5 |2 }+ I8 m1 G{
8 |, P7 K& C; N7 t- X. Z        report_init_message();                // 打印歡迎信息
5 n% `) Q9 p4 P( U0 V5 E        //重啟后檢驗和報告報警狀態如果錯誤重啟初始化。9 ?2 F5 f: N8 \
        if (sys.state == STATE_ALARM) {2 L" d& ]4 P; u2 }4 `
            report_feedback_message(MESSAGE_ALARM_LOCK); //打印信息8 _8 F0 e; H2 U) H- C5 g5 Z
          } else {; a, w) n0 w1 Y$ ^& r# B
            // 如果沒有報警說明一切正常!但還是要檢查安全門.
# Z+ \, {- H  [7 _            if (system_check_safety_door_ajar()) {- F1 G& a# P+ _, j8 K# W) ~# A
                     bit_true(sys_rt_exec_state, EXEC_SAFETY_DOOR);
" u5 r& C2 L! z3 T2 n" T                     protocol_execute_realtime(); // 進入安全模式。應該返回空閑狀態。+ T9 ?, S- l/ |+ u5 `: n- s0 A) P
            }         else {
' x4 ]1 z3 A* I& S6 y# G              sys.state = STATE_IDLE; // .設置系統做好準備。清除所有國家國旗。' W! X4 J% ~0 m0 M% e2 l
            }
. \- F( B% f$ d. [; ^* K            system_execute_startup(line);    //開始執行系統腳本2 L; x" z0 q: a9 v
  }
$ \, y& @% S! v) U, p: ~
9 v( }7 K2 D  w- u3 k8 c
" D% s! @; M( i( M  // 這是主循環!在系統中止時這是出口回到主函數來重置系統。  |6 O; s" i  b' T4 [! t2 P
  // ---------------------------------------------------------------------------------  , Y0 a$ {; J" ~: a* y
  
$ t& ^) g( ?: D- d5 B1 V6 g9 o- c7 T        uint8_t comment = COMMENT_NONE;
& |, M) O) Q9 E9 ^        uint8_t char_counter = 0;
; S5 W- ~& W/ q1 p- O! C* Y        uint8_t c;& `$ b# z1 f4 r7 B& y( A
_______________________________________________________________________________________________________________________________' e" {1 N. U, Y' J4 X- l; x! M9 Z
接下來進入for(;;)循環                //下面代碼是G代碼解析核心部分,程序中comment(注釋)變量會被賦不同值,代表發符號有‘(’‘)’‘;’
/ m5 ?1 M* Z8 U* P; f) B5 z+ Y! B{7 }9 {& Z6 B0 }" I& O
//串行數據輸入一行的的過程,作為數據。執行一個
9 J# ]* ^/ H! A9 ~/ j7 R% V. w) F//所有數據初始過濾去除空格和注釋。 / g) u2 U" S1 L8 `- r' F6 u, r2 B
//注意:注釋,空格和程序段刪除(如果支持的話)處理技術
: g/ n9 D; q2 y//在G代碼解析器,它有助于壓縮到Grbl傳入的數據3 q* x. [+ c6 X+ w
//線緩沖區,這是有限的。刀位點標準實際上州一行不行- Y% U# [( O/ }. S2 w7 O
//不能超過256個字符,Arduino Uno沒有更多內存空間。3 Y2 H  [3 _% w/ A+ {
//有更好的處理器,它會很容易把這個初步解析的
6 O9 @' y# M* |//分離任務共享的刀位點解析器和Grbl系統命令。                                                               
* l+ B7 W/ k' ^7 h! y    while((c = serial_read()) != SERIAL_NO_DATA) {                             //讀取串口數據,有數據執行下面代碼# x9 @7 B! }: G6 F% w
      if ((c == '\n') || (c == '\r')) { // End of line reached                //如果數據是/r,/n代表一行結束
( t! s8 G, `, a) M        line[char_counter] = 0; // Set string termination character.        //設置結束標志* X/ n- z! M4 ~, @" y
        protocol_execute_line(line); // Line is complete. Execute it!        //一行完成執行此函數$ \6 i: m; S: q& e6 ?& q
        comment = COMMENT_NONE;                                                //注釋清零
" @3 e1 @( e' _# g# n' Q        char_counter = 0;                                                    //字符計數清零
8 _% ~8 i9 `: w% ]9 s" _  c7 s  
5 o! y5 r, O2 O3 _2 u* W) ]- p        else {
- e8 G& V# j/ g6 L! n4 ?2 c        if (comment != COMMENT_NONE) {7 j: A1 p2 }0 H2 ]# ]5 o' V6 `1 }
                                                     //扔掉所有注釋字符
9 S( P, I' e) J$ }# z; P! @          if (c == ')') {
7 e) `' \- c! z6 O            //最后注釋。重新開始。但是如果有分號類型的注釋。/ V: s  u9 G1 d7 c1 x4 b) p% `7 z
            if (comment == COMMENT_TYPE_PARENTHESES) { comment = COMMENT_NONE; }
7 R3 S/ y0 S- H! e# Y. |          }7 P  {, e6 A( f
      } else {
0 J8 ?3 l) n7 s7 H  ^" {          if (c <= ' ') { 8 v# h4 ]8 {- U
            //扔掉whitepace和控制字符
7 p: k0 \0 s, T  o! L          } else if (c == '/') {
3 O  D% C3 \9 O$ A; h( t5 Y            //塊刪除不支持將忽略字符。, n7 r$ Q5 N2 _. c( t! r& Q
            //注意:如果支持,只需要檢查系統是否啟用了塊刪除。
: f; t3 T& W4 P( ~8 Z1 f- f, a( D          } else if (c == '(') {+ _, [) x0 i$ \
            // Enable comments flag and ignore all characters until ')' or EOL.0 O# A0 i. L8 n4 V
            // NOTE: This doesn't follow the NIST definition exactly, but is good enough for now.( }! ?  m4 a, a% O" B2 j  T
            // In the future, we could simply remove the items within the comments, but retain the
, A  `) J/ ]2 @, d  j7 u            // comment control characters, so that the g-code parser can error-check it.7 O* N1 s$ W" y& ?
            comment = COMMENT_TYPE_PARENTHESES;
' I% p: b+ \" F( J" J- u# J          } else if (c == ';') {6 v! a6 F% \, [4 E, z; u* w
            //注意:','注釋EOL LinuxCNC定義。沒有國家標準。
# ~) _" C( }9 p            comment = COMMENT_TYPE_SEMICOLON;# s+ b& V) }' I
/ g' |- k* E8 D( }1 Z9 h
$ l$ M# ~1 B+ [$ X- E7 C3 Y
_____________________________________________________________________________________________________________________________________
8 F& w5 c& z, R, C  \3 E          } else if (char_counter >= (LINE_BUFFER_SIZE-1)) {                        //串口接收數據大于80字符時
6 L5 @" }/ f+ N8 P# G, @            // Detect line buffer overflow. Report error and reset line buffer.        檢測緩沖區溢出。報告錯誤和復位線緩沖區。
1 A  X# |7 ?; A0 k. H5 u# d            report_status_message(STATUS_OVERFLOW);                                //打印溢出信息
: D. r1 z# X" m            comment = COMMENT_NONE;
5 @( U# D- E- R" _' R5 l            char_counter = 0;
5 T; {2 E' v' U* u  v+ `9 y' C          } else if (c >= 'a' && c <= 'z') { // Upcase lowercase                        //小寫改大寫5 Z8 z2 r4 C3 v# i* [
            line[char_counter++] = c-'a'+'A';7 x9 J0 J8 ]. E2 o9 Q! ^
          } else {
5 g! c& s$ `" r8 G            line[char_counter++] = c;
  R4 ]9 g# _" l5 `) ]/ X          }( [% i3 x8 Y" B5 w  ~4 N
        }% I. P9 [  ], U% V: `
      }6 y& @1 B7 c+ I( ~
    }7 t# i7 R) M1 B/ t6 p4 m: _
____________________________________________________________________________________________________________________________________
" ?' Y- t: J# @* X# s        //如果沒有其他字符在串行處理讀取緩沖區和執行,這表明以完成,自動啟動,如果啟用,任何隊列動作。0 \6 n+ q4 }5 f4 O/ @
        protocol_auto_cycle_start();                //自動開始協議循環; w' S( h" P5 t
        % d' v- r2 c* {, \! _/ o% Y/ D
            protocol_execute_realtime();                  //運行實時命令。
$ i5 r& C6 ~; M# \- c            if (sys.abort) { return; }                 //中止標識置位程序循環重置系統。            
/ p8 `4 L8 L$ `3 R1 I- o0 X  }
4 e5 B+ \% n% j; F1 F3 E  return;                         //一般程序不會執行到這里
* }5 e" O0 L- i) f/ Q3 H}
" m3 |& k( d- l, {/ @& i) O____________________________________________________________________________________________________________________________________. W6 F' |8 C; i' x  u4 V# {
正常情況下,讀取完G代碼程序會進入protocol_auto_cycle_start();//自動開始協議循環 函數下面介紹此函數
! B* V. p) X8 @$ H// Auto-cycle start has two purposes: 1. Resumes a plan_synchronize() call from a function that1 C! T/ p, |7 a2 O( u" d6 O6 x
// requires the planner buffer to empty (spindle enable, dwell, etc.) 2. As a user setting that ! `2 z+ @) n0 L& \: K  K
// automatically begins the cycle when a user enters a valid motion command manually. This is   M4 p" ]2 ~$ M+ U* O5 D# A1 h9 Q% o
// intended as a beginners feature to help new users to understand g-code. It can be disabled* m6 P, d6 O6 D& n
// as a beginner tool, but (1.) still operates. If disabled, the operation of cycle start is
2 s/ b0 N8 A: d/ A5 r// manually issuing a cycle start command whenever the user is ready and there is a valid motion 1 E7 }# ?! `1 l4 c: C9 b
// command in the planner queue.; X- l+ g7 n% @7 W
// NOTE: This function is called from the main loop, buffer sync, and mc_line() only and executes ! C' P( f( k2 F7 H8 d2 ^2 t
// when one of these conditions exist respectively: There are no more blocks sent (i.e. streaming & A# D0 D' p3 w5 m/ Y, ~+ C9 p* k. w
// is finished, single commands), a command that needs to wait for the motions in the buffer to ! s, c+ d, ~$ _8 G
// execute calls a buffer sync, or the planner buffer is full and ready to go.* F% u& J* a+ X, o; F
//自動開始有兩個目的:1。回復一個plan_synchronize()調用的函數
! @3 E# w  a- n9 ^( k//需要規劃師緩沖區空(主軸啟用、住等)2。作為一個用戶設置
# s4 M7 @+ x0 Y; U! U. K& d//自動循環開始當一個用戶輸入一個有效的運動命令手動。這是. u0 r6 @/ h' v# a- U/ _! d  x4 Q2 p! |
//作為一個初學者的特性來幫助新用戶了解刀位點。它可以被禁用
* W3 Y4 A' S( P# f. |6 v5 b" J//作為一個初學者工具,但(1)仍然運作。如果禁用,運行周期開始' X! v* N" h1 @3 z7 M4 X1 U
//手動發出一個周期開始命令每當用戶準備好,有一個有效的運動: a+ n0 C8 z0 }: I( `2 c; d% r" W
//命令的規劃師隊列。' `1 U- D# T5 x, a2 \9 z
//注意:這個函數被稱為從主循環緩沖區同步,mc_line只()并執行
" _% [, Y* d8 V9 N+ \//當其中一個條件分別存在:沒有更多的塊(即流發送
% ~8 s) O. K: W; @0 K//完成后,單一的命令),一個命令,需要等待緩沖的動作
. g* f) @: ?8 ~( O//執行調用一個緩沖區同步,或規劃師緩沖區滿了,準備好了。( m" O' ?+ C. [! y5 n/ @+ Y* J; E7 w
void protocol_auto_cycle_start() { bit_true_atomic(sys_rt_exec_state, EXEC_CYCLE_START); } % V% v" f. z+ T* f
_______________________________________________________________________________________________
# i8 `1 o6 b/ B$ \接下來程序運行protocol_execute_realtime(); /運行實時命令。6 Y7 Z) F2 j! }& R! z6 _$ a
// Executes run-time commands, when required. This is called from various check points in the main
6 q; o8 k, u' J% i1 {// program, primarily where there may be a while loop waiting for a buffer to clear space or any
2 e3 d( O# ]. h8 g8 m// point where the execution time from the last check point may be more than a fraction of a second.
5 l4 s2 U7 e' X3 Z, |6 e// This is a way to execute realtime commands asynchronously (aka multitasking) with grbl's g-code
  _, _, d5 P' }& k// parsing and planning functions. This function also serves as an interface for the interrupts to
% O) H( A" Q; P& [2 a$ r' N// set the system realtime flags, where only the main program handles them, removing the need to' b; s: O" w' [: y. x* s! |
// define more computationally-expensive volatile variables. This also provides a controlled way to
) N4 `: N, }+ N! K// execute certain tasks without having two or more instances of the same task, such as the planner
* P( n# ^# c2 o, p& Q  s// recalculating the buffer upon a feedhold or override.0 J* w1 Y6 @, ]( Z, ^( F
// NOTE: The sys_rt_exec_state variable flags are set by any process, step or serial interrupts, pinouts,
6 D1 I; Z% s/ f// limit switches, or the main program.# Y6 \9 A0 o6 j2 R# ]% z) g8 i
void protocol_execute_realtime()
) p/ y& o# r- a& c uint8_t rt_exec; // Temp variable to avoid calling volatile multiple times.臨時變量來避免多次調用不穩定。
6 `/ ^, {! m: A( v2 z+ @  u7 j就先分享到這吧!: I0 ~$ Y' R5 V: K9 w

2 `- }% M" w8 p! ]4 i
2 T; T0 w! ]4 X; ]8 n/ N! J" l1 U
$ J% w& ~' e8 w, |0 m: g  A
/ G# Y6 L) L0 [$ w

) K. {. M8 x0 i! `1 X
& _, _: l9 U. M0 H5 C1 M# h! S  V4 C- o4 W! ^0 I

! o8 D* D& s, D3 s7 C" `
: X' I8 u- h- t; t
' T2 R. ?5 _8 J1 g3 @, u4 v
7 t, A- D/ D4 B9 c- M5 ^3 p- d: o! K

* I- L" |  j8 ?5 U5 V
( k5 P: s5 w3 f# p
9 V, J. n  q* D% W" N# x* ^+ Y- Z
0 n8 i) z; r8 f( }5 v

7 {  J( H3 P+ [2 H8 _0 D+ U

! i( {9 `! n# i( P0 e
9 A' G5 R& X7 k8 j; S! w3 J( t; {6 j  a; N4 ]

# b6 L) E- S, D補充內容 (2016-8-25 22:40):
1 X  [7 l5 B, x7 D* _; R配置說明! X% P0 C. X' P( b  w7 t
//這個文件包含編譯時配置Grbl的內部系統。在大多數情況下,) t9 k$ o* K' F8 J- i2 E9 R! v
//用戶不需要直接修改這些,但是他們在這里為特定的需求,即。" z3 g: h% x0 w* Q, B5 Q  s4 `
//性能調優或適應非典型的機器。1 P+ {2 E7 U% N  {! m
主要配置項:
5 F6 @+ c8 d# u7 G1.#define DEFAULTS_GENERIC        //在重置eepm時使用。在defaults.h改變想要的名字
) ]  v7 j( D0 n1 O' T3 v$ V# Y8 }2.#define BAUD_RATE 115200        //配置串口波特率115200( o4 t3 E9 n/ N/ _4 j  c4 V$ J
3.#define CPU_MAP_ATMEGA328P         // Arduino Uno CPU
: {( ^+ e# F) x" ~8 H4 j/ J. q4.#define CMD_STATUS_REPORT '?'        //定義實時命令特殊字符
8 g3 b0 }+ Y4 t- O' c5.#define HOMING_INIT_LOCK         //回原點保護鎖1 |) X7 Y# M8 u3 }4 w6 M6 F( {& v
6.#define HOMING_CYCLE_0 (1<<Z_AXIS)              // 第一步Z清除工作區。
8 ?& w% I# i! j, P, c* s2 L9 t7 g  #define HOMING_CYCLE_1 ((1<<X_AXIS)|(1<<Y_AXIS))  // 然后X,Y在同一時間。
! l8 B4 y  s9 p2 Z" {. {7.#define N_HOMING_LOCATE_CYCLE 1 //回原點循環次數
4 H2 p: ^% T- z% o/ p. C# _7 m8.#define HOMING_FORCE_SET_ORIGIN //取消這定義迫使Grbl總是在這時候位置設置機器原點盡管開關方向。3 \# u8 h5 |4 I! G& [& v) N
9.#define N_STARTUP_LINE 2 //塊Grbl啟動時執行的數量。  ]0 ~0 v6 @0 `  _# _
10.#define N_DECIMAL_COORDVALUE_INCH 4 // Coordinate or position value in inches 協調或位置價值英寸8 }4 y* ]: |- h4 @% c* _
   #define N_DECIMAL_COORDVALUE_MM   3 // Coordinate or position value in mm 協調在毫米或位置價值
7 m4 A* z. E8 W% a. Y+ K/ z2 P- ]   #define N_DECIMAL_RATEVALUE_INCH  1 // Rate or velocity value in in/min 率或/分鐘的速度值
. _, T- ~; _3 E% C4 d  i   #define N_DECIMAL_RATEVALUE_MM    0 // Rate or velocity value in mm/min 速率或速度值在毫米/分鐘$ Q; B, ^* h' ]! l. L
   #define N_DECIMAL_SETTINGVALUE    3 // Decimals for floating point setting values 對浮點小數設置值
; E5 h5 D+ c1 v11.#define LIMITS_TWO_SWITCHES_ON_AXES //如果你的機器有兩個極限開關連接在平行于一個軸,您需要啟用這個特性" N7 I6 {9 ?9 A# T+ r- i
12.#define USE_LINE_NUMBERS         //允許GRBL跟蹤和報告gcode行號
7 e; [7 U; \7 n7 e* Z0 W13.#define REPORT_REALTIME_RATE //允許GRBL報告實時進給速率4 E, c; Y" l# K5 V: F
14.#define MESSAGE_PROBE_COORDINATES  //坐標通過Grbl $ #的打印參數?) G% M+ S& y/ p+ U
15.#define SAFETY_DOOR_SPINDLE_DELAY 4000 //安全門主軸延時
9 L1 w( E* o+ ?* k; B/ X9 ?% r16.#define SAFETY_DOOR_COOLANT_DELAY 1000 //安全門冷卻液延時$ I; l) R) h/ l4 D
17.#define HOMING_CYCLE_0 (1<<X_AXIS) and #define HOMING_CYCLE_1 (1<<Y_AXIS) //啟用CoreXY運動學。
: v8 t9 R  a' I: }' x6 ^18.#define COREXY // Default disabled. Uncomment to enable.改變X和Y軸的運動原理
% |! X" X2 U3 N  k/ H7 J19.#define INVERT_CONTROL_PIN // Default disabled. Uncomment to enable.反轉針銷邏輯的控制命令' n) Q6 I% B( w$ ?' z  o  o- o% z
20.#define INVERT_SPINDLE_ENABLE_PIN // 反轉主軸使銷從low-disabled+ |0 d! `- p7 F) M0 K) V' ~4 C
21.#define REPORT_CONTROL_PIN_STATE //啟用控制銷狀態反饋狀態報告。# Q, y1 f+ A) X. u2 A3 P2 _
22.#define FORCE_INITIALIZATION_ALARM //啟用和用戶安裝限位開關,Grbl將啟動報警狀態指示
; F. X8 Z* U+ `& E' h# Q& x3 d' }23.#define REPORT_GUI_MODE // gui允許最小的報告反饋模式
* q. M- N6 x  @* {2 G! w* u24.#define ACCELERATION_TICKS_PER_SECOND 100 //加速度的時間分辨率管理子系統。, a/ X& Y) [1 O
25.#define ADAPTIVE_MULTI_AXIS_STEP_SMOOTHING //自適應多軸步平滑(積累)是一種先進的功能 * Q% G; G0 w8 l, a  t
26.#define MAX_STEP_RATE_HZ 30000 //設置最大一步速率可以寫成Grbl設置
" Y) Y$ b/ u5 n, t27.#define DISABLE_LIMIT_PIN_PULL_UP //以下選項禁用內部上拉電阻4 ]( c* C& H3 M% w1 ?( s
28.#define TOOL_LENGTH_OFFSET_AXIS Z_AXIS //設置哪個軸長度補償應用的工具。假設軸總是與選擇軸工具面向負方向
5 O" J; b' h& j) h+ U29.#define VARIABLE_SPINDLE //允許變量軸輸出電壓不同的轉速值。
0 x; b0 ^' |8 @30.#define SPINDLE_MAX_RPM 1000.0  // Max spindle RPM. This value is equal to 100% duty cycle on the PWM.( k2 M% i- b1 x4 E# E8 B/ `* r
   #define SPINDLE_MIN_RPM 0.0    // Min spindle RPM. This value is equal to (1/256) duty cycle on the PWM.
& k+ x: y( i3 H* z4 Z  `' {& X' B31.#define MINIMUM_SPINDLE_PWM 5 //使用的變量軸輸出。這迫使PWM輸出最小占空比時啟用。8 s+ }. A1 g/ c8 y3 A/ j- s* A1 V1 R
32.#define USE_SPINDLE_DIR_AS_ENABLE_PIN //主軸方向使能M4被刪除/ s/ \* l7 x# P: W) a
33.#define REPORT_ECHO_LINE_RECEIVED //應該對所有正常線路送到Grbl( Q3 F- s& \: g* f3 G
34.#define MINIMUM_JUNCTION_SPEED 0.0 // (mm/min) //最小規劃師結速度。設置默認最小連接速度規劃計劃' l2 }  H8 s' P# V
35.#define MINIMUM_FEED_RATE 1.0 // (mm/min)//設置計劃將允許的最小進給速率
. @# w2 W' n8 n/ p36.#define N_ARC_CORRECTION 12 //弧生成迭代次數之前小角度近似精確的弧線軌跡& w: R" ]2 E- b$ K* I
37.#define ARC_ANGULAR_TRAVEL_EPSILON 5E-7 // Float (radians)//定義值設置機器ε截止來確定電弧是一個原點了?
8 H9 A5 Z* T0 H1 N. R5 V6 _38.#define DWELL_TIME_STEP 50 // Integer (1-255) (milliseconds) //延時增加表現在住。默認值設置為50毫秒
  Z# q! {! M4 C/ e; p* _39.#define STEP_PULSE_DELAY 10 // Step pulse delay in microseconds. Default disabled.
, e' q" ]; O$ p- s+ l40.#define BLOCK_BUFFER_SIZE 18  //線性運動規劃師緩沖區的數量在任何給出時間計劃
' K0 l4 }8 s, ~. @7 N41.#define SEGMENT_BUFFER_SIZE 6 //控制之間的中間段緩沖大小的步驟執行算法
5 g' c, s/ c3 N) l/ y- E42.#define LINE_BUFFER_SIZE 80 //行執行串行輸入流的緩沖區大小。
( X' B3 f0 v7 J43.define RX_BUFFER_SIZE 128 //串行發送和接收緩沖區大小
; ?4 }; t2 O) |2 |; s9 F4 P  n44.#define TX_BUFFER_SIZE 64
/ x0 y/ C" N. Z& f& n% {45.#define ENABLE_XONXOFF        ////切換為串行通信發送流軟件流控制。8 J3 j6 f. ]) w5 \. p. W  a9 h& f5 e6 \
46.#define ENABLE_SOFTWARE_DEBOUNCE //一個簡單的軟件消除抖動特性硬限位開關。
7 P1 t0 e: ]/ b  ^2 j. o7 i47.#define HARD_LIMIT_FORCE_STATE_CHECK        //Grbl檢查硬限位開關的狀態  k/ }" [8 |0 F* K. U
48.// COMPILE-TIME ERROR CHECKING OF DEFINE VALUES:編譯時錯誤檢查的定義值:  ^) k" _3 }! _- }2 Q9 V

; F- F% R7 J) ]* p+ B, z! H___________________________________________________________________________________________________0 g1 C. z3 [! C2 R8 @' j
/*
. s* _, l% o$ f" l  config.h - compile time configuration: U. P3 Q9 ?2 d) L
  Part of Grbl
' T4 l8 |/ S$ q+ @- V4 Y% V9 {$ J# ?/ d- J2 h" c) w) ^
  Copyright (c) 2012-2015 Sungeun K. Jeon
4 o4 {; p2 t' @! `  Copyright (c) 2009-2011 Simen Svale Skogsrud
# M: E. h/ M' @  D: v( D9 X. H2 T' s" p8 a+ Y! j1 H
  Grbl is free software: you can redistribute it and/or modify" s# j! H" A( p4 X; w1 w/ o
  it under the terms of the GNU General Public License as published by
1 I! v  B4 l* c0 m, H/ T5 a6 ]  the Free Software Foundation, either version 3 of the License, or
, [4 Y! b% j/ P# [4 @  B) s  (at your option) any later version.& T% o6 |* t4 |

4 K5 y$ S: j" O- @3 A/ d  Grbl is distributed in the hope that it will be useful,
) i- l& j; L) }' O1 B3 q. {  but WITHOUT ANY WARRANTY; without even the implied warranty of  W& c" e$ D5 y6 l
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the5 x) W  Q# u2 M7 X( Y" ~8 w
  GNU General Public License for more details.
! S$ z2 F6 T" [+ u( B9 }2 [4 i; o7 M2 m. C( V5 v
  You should have received a copy of the GNU General Public License
7 ]/ @- U) [4 u% E9 J  v5 ~+ L' n- t  along with Grbl.  If not, see <http://www.gnu.org/licenses/>.4 y" ~# E# C; C
config.h  -編譯時配置,Grbl的一部分% X$ x6 ~5 O8 X% g: [9 }

2 H2 h% Z, V. y2 a, U; w版權(c)2012 - 2015 Sungeun K. Jeon" P, L) }: d3 c8 g$ `
版權(c)2009 - 2011 Simen Svale Skogsrud
3 L0 b5 X4 h2 \7 Q. l
# r$ K6 [1 l2 WGrbl是免費軟件:可以重新分配和/或修改2 G+ G; m' d* e* B) F. U
GNU通用公共許可證的條款下發布的自由軟件基金會,版本3的許可,或(任您選)其后的版本。% m8 S) d% m; [+ a( G8 }

+ a3 ^  Q! w- q$ h' uGrbl分布,希望這將是有用的,但是沒有任何保證;沒有即使的默示保證適銷性或健身為特定目的。看到2 c( s) G" H4 N/ V
GNU通用公共許可證的更多細節。
% \: K7 b# C$ A3 v. t0 `( F4 O8 Y/ @1 e( }' o. U" F% x
你應該收到了GNU通用公共許可證的副本' F; ]* T5 W0 G+ H
連同Grbl。如果沒有,看< http://www.gnu.org/licenses/ >。1 b6 `1 K5 x* r! P

$ L6 Z6 ~- u8 ?/ U2 J' M*/
, G* {, h  K5 ?5 U  2 n! _; A5 M6 V1 |
// This file contains compile-time configurations for Grbl's internal system. For the most part,& C5 {* B. \" X, s$ S+ [7 h( T6 L
// users will not need to directly modify these, but they are here for specific needs, i.e.% X' A2 u! E) t# o3 {. ^$ k
// performance tuning or adjusting to non-typical machines.5 }/ C. K# o4 L. B, Z/ O
//這個文件包含編譯時配置Grbl的內部系統。在大多數情況下,
  i% O6 P2 K5 W' u//用戶不需要直接修改這些,但是他們在這里為特定的需求,即。# k& ?/ m# q% \4 Z! [
//性能調優或適應非典型的機器。5 c3 y* y" p* {! W; ?$ V6 s

7 B2 B' H. h- p5 n: Z: k// IMPORTANT: Any changes here requires a full re-compiling of the source code to propagate them.4 K1 J" D( i6 e4 r# L
//重要:任何變化需要一個完整的基于源代碼的傳播。
: q2 @/ h6 ~8 Z4 G2 ~4 b3 I+ W: X1 p  r4 Q, E' c3 g
#ifndef config_h, O+ y( c- E7 e( W! ]/ D. a& m+ [& A
#define config_h
3 a+ w0 H4 v9 `0 k/ P#include "grbl.h" // For Arduino IDE compatibility.& t& T8 j9 j  ?# J

, j4 k) Z/ P- m# v! t8 p% R4 I// Default settings. Used when resetting EEPROM. Change to desired name in defaults.h6 g) v  Q  Q  P3 o1 h7 A2 x$ z. m' w9 v
// 默認設置。在重置eepm時使用。在defaults.h改變想要的名字2 S: X7 p( l& t( B" u1 [
* ?' {8 O. j3 S, L3 e
#define DEFAULTS_GENERIC
$ N3 Q! e$ O" i3 m& n! T7 b  ~# l" E. x$ {4 i& ^, V
// Serial baud rate
8 l# l4 c( X8 B#define BAUD_RATE 115200                //配置串口波特率115200
+ x0 |$ O9 H/ H3 y( B. g/ Y, w4 {( Z" k4 I7 }
// Default cpu mappings. Grbl officially supports the Arduino Uno only. Other processor types# Q5 J5 B# R: C0 S' |/ @
// may exist from user-supplied templates or directly user-defined in cpu_map.h' Z0 W9 V: R0 v, H; y
//默認cpu映射。Grbl正式支持Arduino Uno。其他類型的處理器可能存在cpu_map.h直接從用戶提供的模板或用戶定義的* G! _! [! ]0 @# Z  T* |
6 }* v* X+ I# r5 [& y& V( z4 \
#define CPU_MAP_ATMEGA328P // Arduino Uno CPU
. z7 N! [" v0 ]
1 P3 x) H+ b3 l/ Q// Define realtime command special characters. These characters are 'picked-off' directly from the
( T( {) f& C- R! B% ]// serial read data stream and are not passed to the grbl line execution parser. Select characters; ^9 s. ]" x( c: S3 x" S3 X2 T2 G
// that do not and must not exist in the streamed g-code program. ASCII control characters may be
3 b0 q* I0 ^6 ?9 e7 J// used, if they are available per user setup. Also, extended ASCII codes (>127), which are never in   Q" \9 G2 c8 j* G* O
// g-code programs, maybe selected for interface programs.9 {4 e8 X# g' D; O
// NOTE: If changed, manually update help message in report.c.
: g3 G- n: P% d1 x, F4 ?- S, j: S% h0 |. u) y$ b5 D! I
//定義實時命令特殊字符。這些字符是直接從“各個擊破”串口讀取數據流并沒有傳遞到grbl行執行解析器。選擇角色. C9 n- q; Z1 ]! k5 b
//不,不能存在于程序流刀位點。ASCII控制字符( ?6 d+ Z/ F: n$ _+ q( I" d! A
//使用,如果他們是可用的每個用戶設置。同時,擴展的ASCII碼(> 127),從來沒有
% \) D3 P. A/ I. {3 I1 Y$ m//刀位點的程序,也許選擇界面程序。
' U: f+ Y+ \) m1 b//注意:如果改變,手動更新report.c幫助信息。
8 {  i! O! x% l9 T  C0 E( g5 i6 T6 h2 s' M  D7 E3 t% Y9 y5 d
#define CMD_STATUS_REPORT '?'
9 _. F6 N# K2 O- ~#define CMD_FEED_HOLD '!'! T" O$ |3 ~4 L
#define CMD_CYCLE_START '~'! A/ t5 X; S0 ^! R7 p
#define CMD_RESET 0x18 // ctrl-x.
2 g) j, ^* C& t+ y* T#define CMD_SAFETY_DOOR '@'- j5 u$ v6 D. F7 v

+ {3 h# F% h" v// If homing is enabled, homing init lock sets Grbl into an alarm state upon power up. This forces
# Q* ]5 W3 l# V$ ]// the user to perform the homing cycle (or override the locks) before doing anything else. This is' @$ M7 d; C: g3 s  q4 U
// mainly a safety feature to remind the user to home, since position is unknown to Grbl.
& z" D5 A  v  }# r7 K5 @& Y, [! C* f9 N5 f- R1 v7 I1 E6 \, k
//如果啟用了回原點,導航初始化鎖集Grbl進入警報狀態啟動。這就迫使
. m+ \0 ^2 z# T$ [; m: p//用戶執行歸航周期(或覆蓋鎖)在做任何其他事情之前。這是
& R- E6 z3 @) |5 e//主要安全功能,提醒用戶家里,因為Grbl位置是未知的。
. E8 U4 s3 _1 E
& b: s, T2 Z5 U  b& s4 u; K#define HOMING_INIT_LOCK // Comment to disable
" G  y8 T$ e- m
8 n9 l$ b" l; v- O// Define the homing cycle patterns with bitmasks. The homing cycle first performs a search mode4 }0 e* ~0 H7 a1 B; z: a
// to quickly engage the limit switches, followed by a slower locate mode, and finished by a short1 q! I8 B9 M3 }" W, v# i
// pull-off motion to disengage the limit switches. The following HOMING_CYCLE_x defines are executed 0 S4 W. |& f! J! q* O
// in order starting with suffix 0 and completes the homing routine for the specified-axes only. If" M2 T  b  Z* a% p9 k
// an axis is omitted from the defines, it will not home, nor will the system update its position.$ P# a/ }: z, y" o  E& O8 ~
// Meaning that this allows for users with non-standard cartesian machines, such as a lathe (x then z,8 i- A- y+ Q7 J$ m- z0 r" s- x5 I
// with no y), to configure the homing cycle behavior to their needs.
* B# G' }* F" ~' E+ O( R// NOTE: The homing cycle is designed to allow sharing of limit pins, if the axes are not in the same
6 p, l3 Z4 i/ i// cycle, but this requires some pin settings changes in cpu_map.h file. For example, the default homing
6 [7 Z4 W3 N$ s// cycle can share the Z limit pin with either X or Y limit pins, since they are on different cycles.
  I2 z0 o+ M4 Z& f6 U- \! R  ]// By sharing a pin, this frees up a precious IO pin for other purposes. In theory, all axes limit pins
; A+ O2 k$ t& s8 x' ?1 A, k// may be reduced to one pin, if all axes are homed with seperate cycles, or vice versa, all three axes5 H6 d( R9 D& g$ Z
// on separate pin, but homed in one cycle. Also, it should be noted that the function of hard limits
( T, @" r' {8 R// will not be affected by pin sharing.
% d% p* ~. X2 `" ~" ^) I5 |3 a//定義導航循環模式的位掩碼。歸航周期首先執行一個搜索模式' q: |  p8 m* G: T4 Z
//快速進行限位開關,其次是較慢的定位模式,完成了由一個短
) L; C# y6 j7 ?+ t* C; ?4 O//拖出運動脫離限位開關。以下HOMING_CYCLE_x定義執行
+ ~) k6 C: W: W2 h& v+ j//為了與后綴0開始并完成specified-axes只尋的例程。如果( D1 N/ n- ~- y) K4 v5 I
//定義省略一個軸,它會不在家,也不會系統更新它的位置。& U1 f4 N- e6 p4 n+ f; S
//意義,這允許用戶與非標準笛卡爾的機器,比如車床(x,z,: _- a, F' n: `' ~9 x* ^
//沒有y),配置導航循環行為對他們的需求。+ U+ a+ d8 ^! K- g4 {, c
//注意:歸航周期允許共享限制針,如果軸不相同
3 s* C- J+ _  M. z% f) N; K//循環,但這需要一些銷設置cpu_map的變化。h文件。例如,默認的導航6 i) i4 b. R" g) V4 g( C5 s. E
//循環可以分享Z限位銷X或Y限制針,因為它們是在不同的周期。- o$ c) k! o( V' W
//通過共享一個銷,這騰出寶貴的IO銷用于其他目的。從理論上講,所有軸限制別針
0 k/ k6 I  P, b9 A' w5 s//可能會減少到一個銷,如果所有軸與分離周期居住的地方,反之亦然,所有三個軸
" P0 Z' A  Y5 m//在不同銷,但這時候一個周期。同時,應該注意的是,硬限制的功能6 k. Z5 [) t5 l) Z7 _
//將不會影響銷共享。1 \4 _9 W  m! |" p
//注意:默認設置為一個傳統的硬件數控機器。z軸首次明確,其次是X和Y。
" C! N* v/ S- B7 F4 O* E& [, e  M: c7 y
// NOTE: Defaults are set for a traditional 3-axis CNC machine. Z-axis first to clear, followed by X & Y.
( R* S3 D- W7 _! s: m#define HOMING_CYCLE_0 (1<<Z_AXIS)                // REQUIRED: First move Z to clear workspace. 第一步Z清除工作區。
) H. @7 ^1 D3 D; d! L8 D#define HOMING_CYCLE_1 ((1<<X_AXIS)|(1<<Y_AXIS))  // OPTIONAL: Then move X,Y at the same time.然后X,Y在同一時間。
& n% _, r! w) o+ q5 W// #define HOMING_CYCLE_2                         // OPTIONAL: Uncomment and add axes mask to enable
- _. w# r0 a) i/ g" f* \2 T! M+ S# X/ f7 ^
// Number of homing cycles performed after when the machine initially jogs to limit switches.& `& k! H$ H0 b1 ^1 B4 K
// This help in preventing overshoot and should improve repeatability. This value should be one or 4 k7 W# ]+ m& ^
// greater.) u+ F5 V& g4 d( R1 D4 f
//執行回原點循環次數后,當機器最初慢跑限位開關。這個幫助防止過度,應該提高重復性。這個值應該是一個或大。, T' S* E2 h  x6 {5 K

( e8 w+ |. ]4 u7 M! v#define N_HOMING_LOCATE_CYCLE 1 // Integer (1-128)  J5 J0 O; X; I5 s# e* k

* @) a; h1 P: s// After homing, Grbl will set by default the entire machine space into negative space, as is typical
0 ^0 H  w& E- ^* K& e7 F// for professional CNC machines, regardless of where the limit switches are located. Uncomment this
" J1 E7 O% A9 z9 Z8 O// define to force Grbl to always set the machine origin at the homed location despite switch orientation.& g- B* ?: }1 r* i
7 }5 {/ D. J* R2 ?( k
//導航后,默認Grbl將整個機器空間留白,是典型的專業數控機器,不管限位開關所在的地方。
' M4 R1 H4 }, |6 {" N3 P) W' f6 Q//取消這定義迫使Grbl總是在這時候位置設置機器原點盡管開關方向。
" f+ m( d! Q  z( ^0 {6 e
! d3 _1 ?2 B$ E, X# @( M// #define HOMING_FORCE_SET_ORIGIN // Uncomment to enable.
' ~2 `: H9 B9 S# y* b% D
" v) W: [1 M9 u. R( T$ G: c
3 ?9 G9 p4 G: c( ?4 C// Number of blocks Grbl executes upon startup. These blocks are stored in EEPROM, where the size
4 c: e0 e: q# c' g6 ]// and addresses are defined in settings.h. With the current settings, up to 2 startup blocks may3 H& i, T/ ^% z9 {
// be stored and executed in order. These startup blocks would typically be used to set the g-code
5 E' \* V9 I+ J# b& ~- L: R; I// parser state depending on user preferences.
3 m, `3 q& u: Q% t5 h
9 j% c6 {. `, s/ e//塊Grbl啟動時執行的數量。這些塊存儲在eepm,大小8 ~7 y. M/ r; [" Q
//和地址在settings.h中定義。與當前設置,可能2啟動塊
4 B) |( n  n5 A//存儲和執行。這些啟動塊通常被用來設置刀位點1 i' ]0 l. Y2 W! J! {+ V
//解析器的狀態取決于用戶首選項。% W' T" v% @7 q- ]( m

, k5 s! P, J' j2 |- K3 y5 n#define N_STARTUP_LINE 2 // Integer (1-2)4 ]' ~3 h) l/ n/ d; ~0 o

% @! e" ]( f! u" Y3 l( Z; F5 G// Number of floating decimal points printed by Grbl for certain value types. These settings are
: {  G/ N  r; e/ T3 Y// determined by realistic and commonly observed values in CNC machines. For example, position
7 m. L! v) F# f; I/ f& T// values cannot be less than 0.001mm or 0.0001in, because machines can not be physically more, N( t8 K$ u9 ]& F4 t% h+ T+ n, v
// precise this. So, there is likely no need to change these, but you can if you need to here.
4 Z' h# g  D9 w" Q! K+ E# D/ ?, ~// NOTE: Must be an integer value from 0 to ~4. More than 4 may exhibit round-off errors.7 {+ V$ N) g' V

/ h0 U) x6 Z6 Q5 `, q// Grbl浮動小數點的數字印刷的特定的值類型。這些設置是3 u, `! m' Q' o5 g$ x* ]/ E
//一般由現實和觀測值在數控機器。例如,位置
% @. q0 x" ~9 {: V3 H  A//值不能小于0.001毫米或0.0001,因為機器不能身體更多- P2 @( H4 e4 }
//精確。因此,有可能不需要改變這些,但你可以在這里如果你需要。
) U8 ~# L: _& y4 \//注意:必須是一個整數值從0 ~ 4。超過4可能出現舍入錯誤。
$ p+ T; m+ N; s. o4 \# |& C2 k. L2 S" h% C
#define N_DECIMAL_COORDVALUE_INCH 4 // Coordinate or position value in inches 協調或位置價值英寸0 x8 G9 D, V/ w( x( {; k
#define N_DECIMAL_COORDVALUE_MM   3 // Coordinate or position value in mm 協調在毫米或位置價值' A6 k, S& j1 c7 |$ _
#define N_DECIMAL_RATEVALUE_INCH  1 // Rate or velocity value in in/min 率或/分鐘的速度值$ c1 f+ I" a9 G/ M
#define N_DECIMAL_RATEVALUE_MM    0 // Rate or velocity value in mm/min 速率或速度值在毫米/分鐘
- z: B2 s5 l( `4 F- f' O5 q3 G#define N_DECIMAL_SETTINGVALUE    3 // Decimals for floating point setting values 對浮點小數設置值( s) x( n$ \5 n7 Y7 Y$ W9 b

) _! x, F+ i8 M+ J  J// If your machine has two limits switches wired in parallel to one axis, you will need to enable
) ^' i/ m6 P( q: Q! F// this feature. Since the two switches are sharing a single pin, there is no way for Grbl to tell/ x; x  Y; G& Q% h$ `* o
// which one is enabled. This option only effects homing, where if a limit is engaged, Grbl will
4 d! O- N5 O# l7 Q// alarm out and force the user to manually disengage the limit switch. Otherwise, if you have one
7 V6 l" [. _4 \0 q// limit switch for each axis, don't enable this option. By keeping it disabled, you can perform a7 t. P( v! D: ]7 J  E) h2 ^- B
// homing cycle while on the limit switch and not have to move the machine off of it.% D. H$ p: g- ~+ `& b, K

! \0 _/ n  r, R( V; e//如果你的機器有兩個極限開關連接在平行于一個軸,您需要啟用' k; ?' I7 a+ U) o$ R: U' q- X! N+ S
//這個特性。自從兩個交換機共享一個銷,沒有辦法Grbl告訴
3 X+ m# D+ [3 D0 ~# h# W//啟用哪一個。此選項僅影響歸航,如果限制,Grbl意志
8 c) S4 J! y4 N$ u9 R2 s9 l: a//報警,迫使用戶手動松開限位開關。否則,如果你有一個3 r' O, ^1 m# Q: O# A
//為每個軸限位開關,不啟用該選項。通過保持禁用,您可以執行! i( q3 a7 J9 I1 S+ l* _, x/ X
//導航循環在限位開關并沒有將這臺機器。
6 K/ n' @& C, S" l9 |' W( Z( S% L& ~* r+ u0 z, y- M% y! Y
// #define LIMITS_TWO_SWITCHES_ON_AXES
; \$ h- e" @+ u% w! o- _/ J4 i3 V5 u$ W* R% ?, M" W# y( b) v  e/ }9 f
// Allows GRBL to track and report gcode line numbers.  Enabling this means that the planning buffer7 [6 a% c7 }1 [. w9 b0 `
// goes from 18 or 16 to make room for the additional line number data in the plan_block_t struct
# F7 x. I; @0 \1 N, @5 ^4 Q+ m( M) F; P- \- i+ W; g
//允許GRBL跟蹤和報告gcode行號。使這意味著計劃緩沖從18歲或16歲,為額外的行號plan_block_t結構中的數據
. w# a3 V7 O/ J- p9 `
2 q8 a* K( B, v  Z) Q// #define USE_LINE_NUMBERS // Disabled by default. Uncomment to enable./ K5 e* r- ~  d2 l8 I' p1 \; }

# F6 K& l3 A/ h' X, o// Allows GRBL to report the real-time feed rate.  Enabling this means that GRBL will be reporting more ( b+ [& K: B4 n
// data with each status update.
" A6 P8 g# O, W) a- ^/ Y// NOTE: This is experimental and doesn't quite work 100%. Maybe fixed or refactored later.
9 S3 ^5 h. W  J1 K8 E//允許GRBL報告實時進給速率。使這意味著GRBL將報告數據和狀態更新。
# @% E3 j7 W0 r0 c( B, p//注意:這是實驗和100%沒有工作。也許以后固定或重構。
3 J  L1 p2 t& u$ |
0 H) B  G& k) u5 L* T% G: o$ V// #define REPORT_REALTIME_RATE // Disabled by default. Uncomment to enable.
7 q( C& D( w' m' {( l' L
- S1 Y" Q  x  r7 f0 `// Upon a successful probe cycle, this option provides immediately feedback of the probe coordinates# P5 U9 @; V  q
// through an automatically generated message. If disabled, users can still access the last probe0 T$ o! Q) i$ A# U5 C2 q+ U8 s
// coordinates through Grbl '$#' print parameters.! J: }+ O/ T3 U, g3 ^& i$ H% I
//在一個成功的調查周期,這個選項提供立即反饋的探測器坐標
. q) B2 }/ }4 V8 H( H//通過一個自動生成的消息。如果禁用,用戶仍然能夠訪問調查
3 F; ]) e6 A7 T; C//坐標通過Grbl $ #的打印參數。- {2 M- y5 s  \
; I. l3 U, u6 }+ E6 [, X. R/ a
#define MESSAGE_PROBE_COORDINATES // Enabled by default. Comment to disable.7 M/ a. V4 z" Q" [5 E

% Q. d; q% E. p: f! o8 T// Enables a second coolant control pin via the mist coolant g-code command M7 on the Arduino Uno
# C* S; h. T3 k7 O8 d. U  N0 u// analog pin 5. Only use this option if you require a second coolant control pin.9 v2 U$ f' j" W% I. B
// NOTE: The M8 flood coolant control pin on analog pin 4 will still be functional regardless.1 t2 `4 P8 X' s
// #define ENABLE_M7 // Disabled by default. Uncomment to enable.9 n: q" A( i9 I
7 N6 X) |1 @1 m
// This option causes the feed hold input to act as a safety door switch. A safety door, when triggered,0 N1 ^( T& E: h" o* S3 b. S* N6 V
// immediately forces a feed hold and then safely de-energizes the machine. Resuming is blocked until! s* E7 F& c1 X* W: G
// the safety door is re-engaged. When it is, Grbl will re-energize the machine and then resume on the& s- D( N$ B8 |. L+ l. X' V
// previous tool path, as if nothing happened.
+ [+ A- ^4 B* j/ F# W9 p// #define ENABLE_SAFETY_DOOR_INPUT_PIN // Default disabled. Uncomment to enable.  O9 B; d2 Z+ D/ U" J
* g$ v/ ~, E3 `5 R
// After the safety door switch has been toggled and restored, this setting sets the power-up delay$ o3 `# Y2 A; k+ ^1 H( v1 }& R, O9 x
// between restoring the spindle and coolant and resuming the cycle.8 V4 c( s4 X' z2 f0 c+ r
// NOTE: Delay value is defined in milliseconds from zero to 65,535. , v% T* f. @% x  L

; d9 A$ W  y5 [! c* g+ x* G//定義導航循環模式的位掩碼。歸航周期首先執行一個搜索模式5 s  M3 h8 e* h, n0 M
//快速進行限位開關,其次是較慢的定位模式,完成了由一個短
& Z. h( K8 i6 G: U9 i2 B//拖出運動脫離限位開關。以下HOMING_CYCLE_x定義執行# i# R) p/ W) _- T; Y( L
//為了與后綴0開始并完成specified-axes只尋的例程。如果( Z% E- Z9 k4 t, z
//定義省略一個軸,它會不在家,也不會系統更新它的位置。
) g; M6 A9 P# h5 U! h//意義,這允許用戶與非標準笛卡爾的機器,比如車床(x,z,
, t. C# |1 o: e8 N  _. P//沒有y),配置導航循環行為對他們的需求。
9 `& H' I4 S  {" O* B$ m/ b//注意:歸航周期允許共享限制針,如果軸不相同
1 C4 i4 F$ m- a' t//循環,但這需要一些銷設置cpu_map的變化。h文件。例如,默認的導航  {6 h3 \1 c, l. V4 `
//循環可以分享Z限位銷X或Y限制針,因為它們是在不同的周期。
9 H& E) ^! S9 b+ ]6 ~2 y/ @1 m' X//通過共享一個銷,這騰出寶貴的IO銷用于其他目的。從理論上講,所有軸限制別針
8 _9 y- ?4 p8 O) q; `7 {! o2 ^# E//可能會減少到一個銷,如果所有軸與分離周期居住的地方,反之亦然,所有三個軸
# _# w- L  h# X//在不同銷,但這時候一個周期。同時,應該注意的是,硬限制的功能
; O* t) G4 J2 B' ~) i//將不會影響銷共享。1 F& E% Z' [7 k) L! g1 W
//注意:默認設置為一個傳統的硬件數控機器。z軸首次明確,其次是X和Y。
0 O* X% v* ~- M) x5 L7 w  X6 u/ r" q* |
( a/ S+ `- f/ h$ o
#define SAFETY_DOOR_SPINDLE_DELAY 4000
% Y. V& _. K' E7 P#define SAFETY_DOOR_COOLANT_DELAY 10009 @& L# h) h  o

1 B3 D5 u% S' Q9 _. J// Enable CoreXY kinematics. Use ONLY with CoreXY machines. 8 N4 W' o; v" X1 z3 i: `
// IMPORTANT: If homing is enabled, you must reconfigure the homing cycle #defines above to
* }0 c4 A( j5 P//啟用CoreXY運動學。只使用與CoreXY機器。; y8 b1 O# E: N) P
//重要:如果啟用了自動尋的,你必須重新配置導航循環#定義上面
4 r  M- ]! Y/ S- f: Q0 I+ r& i$ b3 Q4 j, |3 H
// #define HOMING_CYCLE_0 (1<<X_AXIS) and #define HOMING_CYCLE_1 (1<<Y_AXIS)
; B4 N8 n  m, @* Q" s/ B' U4 J5 f6 J* f: Z: A; P8 S0 J
// NOTE: This configuration option alters the motion of the X and Y axes to principle of operation
- m% v7 D" P) v// defined at (http://corexy.com/theory.html). Motors are assumed to positioned and wired exactly as
) J2 K5 ]  W) x& H// described, if not, motions may move in strange directions. Grbl assumes the CoreXY A and B motors
) f  x2 y* O( k, X3 T// have the same steps per mm internally.
. t  r! A. I, T3 o5 v//注意:這種配置選項改變X和Y軸的運動原理,操作2 h3 L1 @/ J( l2 N. E: c$ n3 h
//定義(http://corexy.com/theory.html)。汽車被認為定位和連接一樣- J& f8 p* d! Y' O' s
//描述,如果沒有,運動可能會奇怪的方向移動。A和B Grbl假設CoreXY馬達0 a: p0 @# z* w% |
//每毫米內部有相同的步驟。3 \% z1 O1 C: W; \8 l

4 F2 R6 V4 P5 Z* j% b' c// #define COREXY // Default disabled. Uncomment to enable.
. y. m, c( u( `. {9 ^1 C6 g. Z
2 ~# F, O, H8 W' m// Inverts pin logic of the control command pins. This essentially means when this option is enabled9 F) f% }) B- [4 y3 u* Y) F+ Y
// you can use normally-closed switches, rather than the default normally-open switches.2 r$ @( t; f8 C
// NOTE: Will eventually be added to Grbl settings in v1.0.) u, L/ x$ f6 k/ Q
//反轉針銷邏輯的控制命令。這實質上意味著當啟用這個選項
' q7 a; g! u5 E: F/ `//可以使用閉合開關,而不是默認的常開開關。
/ b/ P( h$ M2 }0 f! X1 d2 c- p) F& A//注意:最終將被添加到在v1.0 Grbl設置。* g1 Q4 l8 y  m3 k/ H8 j, Z
9 x5 O. F/ {: ]. h
// #define INVERT_CONTROL_PIN // Default disabled. Uncomment to enable.( |5 M; ?2 C% b0 I7 i* c( E% k
' V/ n& w+ D( F2 D2 g( v$ T9 Z/ x' n
// Inverts the spindle enable pin from low-disabled/high-enabled to low-enabled/high-disabled. Useful
% G4 H) l6 p  Q6 b* u7 S  i7 d// for some pre-built electronic boards.9 H, h) r3 b( l5 I
// NOTE: If VARIABLE_SPINDLE is enabled(default), this option has no effect as the PWM output and & E3 B' Z$ x; p- k$ g
// spindle enable are combined to one pin. If you need both this option and spindle speed PWM, 6 e+ F! R0 `( ]; ~( v, v
// uncomment the config option USE_SPINDLE_DIR_AS_ENABLE_PIN below.% N' c% S' W+ `) ~& W
//反轉主軸使銷從low-disabled / high-enabled low-enabled / high-disabled。有用的
" e* b- k) R) e//預構建的電子板。
% ], I5 @2 |0 W: ]//注意:如果啟用了VARIABLE_SPINDLE(默認),這個選項作為PWM輸出并沒有影響& R8 Z4 C: j; a8 P* C" R
//銷軸使結合。如果你需要這個選項和主軸轉速PWM,
& H0 B- _# `5 y  P% j! {$ S//取消注釋以下配置選項USE_SPINDLE_DIR_AS_ENABLE_PIN
' Z2 W4 v) ?4 t' _/ g( Q' J/ x) M  l, z# V. _
// #define INVERT_SPINDLE_ENABLE_PIN // Default disabled. Uncomment to enable.
( Q5 e( c! [7 [8 j9 z$ \3 H3 m* N  t* L* a
// Enable control pin states feedback in status reports. The data is presented as simple binary of" a8 L+ v, h8 t" B! P
// the control pin port (0 (low) or 1(high)), masked to show only the input pins. Non-control pins on the
" _( {4 u0 |, A2 W9 {! _; l1 k// port will always show a 0 value. See cpu_map.h for the pin bitmap. As with the limit pin reporting,0 C& ~* P9 n% Z1 z) `
// we do not recommend keeping this option enabled. Try to only use this for setting up a new CNC.
5 {" f  o3 W: B: E% S; a9 G+ X* E' p//啟用控制銷狀態反饋狀態報告。作為簡單的二進制數據
+ W. s, v2 Z! Z8 T//控制針端口(0(低)或1(高)),蒙面,只顯示輸入插腳。非控制性針上
5 j' w* E; V9 m3 l9 J7 }# G- M2 a//端口總是顯示0值。看到cpu_map。針位圖h。與限制銷報告,! m+ D/ p, M+ v7 f1 _: P) S7 w
//我們不推薦保持啟用這個選項。盡量只使用這個設置一個新的數控。4 Z4 r3 z) F" l# ]

/ g; o- p7 M3 p// #define REPORT_CONTROL_PIN_STATE // Default disabled. Uncomment to enable.6 ^2 T' x: M0 ~7 [

# g1 e7 U1 U: ~* F// When Grbl powers-cycles or is hard reset with the Arduino reset button, Grbl boots up with no ALARM
6 u. b2 A: o) ?: H// by default. This is to make it as simple as possible for new users to start using Grbl. When homing8 e  F% W: b: N7 o( N" S' F7 J, a
// is enabled and a user has installed limit switches, Grbl will boot up in an ALARM state to indicate ; K6 c- P6 X. q! t2 C
// Grbl doesn't know its position and to force the user to home before proceeding. This option forces
( g1 J8 w2 o1 _+ U# U// Grbl to always initialize into an ALARM state regardless of homing or not. This option is more for
3 A! L$ g# d6 T- N// OEMs and LinuxCNC users that would like this power-cycle behavior.
$ I' N6 o- j: R, o( _//當Grbl powers-cycles還是硬重置Arduino復位按鈕,Grbl啟動沒有報警
9 E' }: W  b, f: b/ z* m* P//默認情況下。這是為了讓新用戶盡可能簡單使用Grbl開始。當歸航
, Q5 w6 V. w/ K//啟用和用戶安裝限位開關,Grbl將啟動報警狀態指示4 f( e7 X& X* C/ S& p
// Grbl不知道它的位置,迫使用戶在繼續之前回家。這個選項部隊# _9 h. G2 d! X, y: C/ b$ K% n4 O
// Grbl總是初始化進入警報狀態不管歸航。這個選項是更多
3 v. G6 [* A4 f//原始設備制造商和LinuxCNC用戶這樣的控制行為。4 O8 o7 d" n6 P

# x# q; E/ n: P. Q// #define FORCE_INITIALIZATION_ALARM // Default disabled. Uncomment to enable.: G% a) t3 q5 q/ ^  A+ L; I

6 Q* R) Q" e$ D, s. {// ---------------------------------------------------------------------------------------
' y3 @( F- t" P! b/ U, b// ADVANCED CONFIGURATION OPTIONS://高級配置選項:
$ Q# h! D  P7 s6 k9 _0 b8 H$ V$ ]% q0 @! ~& L  q
// Enables minimal reporting feedback mode for GUIs, where human-readable strings are not as important.0 d5 ~( t2 j6 D4 D
// This saves nearly 2KB of flash space and may allow enough space to install other/future features.2 A6 {! b/ n+ |% k5 _6 n
// GUIs will need to install a look-up table for the error-codes that Grbl sends back in their place.
7 K  q/ K- q' b* U( O// NOTE: This feature is new and experimental. Make sure the GUI you are using supports this mode.
% U9 c/ s+ A) b' K; }
5 V/ u7 w+ r2 Z* z! M7 C% \// gui允許最小的報告反饋模式,人類可讀的字符串在哪里不重要。$ ~$ D3 T: f* L2 |9 k' g4 Z3 D
//這個節省近2 kb的閃存空間,允許足夠的空間來安裝其他/未來的功能。! E* \" W1 o" {+ f9 }2 u
// gui需要安裝一個查找表的錯誤代碼Grbl發回。* k4 d, y$ j; P3 g$ H! B7 I6 n9 x) n4 A
//注意:此功能是新的和實驗。確保您使用的GUI支持這種模式。2 ~6 d& ?. V( C! Z* E

9 w) \) |" }/ _) [// #define REPORT_GUI_MODE // Default disabled. Uncomment to enable.. f/ A$ U8 ?/ R- |6 T4 T5 P2 m  _; a- v
2 d. Y* D2 p. B) z$ [
// The temporal resolution of the acceleration management subsystem. A higher number gives smoother
+ S2 Y& A; [& E# H) Q; W2 E  G// acceleration, particularly noticeable on machines that run at very high feedrates, but may negatively( E% R4 S; A- M- n9 u. i
// impact performance. The correct value for this parameter is machine dependent, so it's advised to, Z# S1 H3 P$ [( x" e3 U3 t
// set this only as high as needed. Approximate successful values can widely range from 50 to 200 or more.
( d) g# W1 `( N+ N, E- W2 a6 i// NOTE: Changing this value also changes the execution time of a segment in the step segment buffer.
" ~, t$ L, u$ Z* L; s8 }/ O: L// When increasing this value, this stores less overall time in the segment buffer and vice versa. Make) [$ ?# z' M; T8 V8 ]" l2 K
// certain the step segment buffer is increased/decreased to account for these changes.
" a! Y( m3 P# W  Q3 v//加速度的時間分辨率管理子系統。更多更平穩
. b0 O+ ]& t# d1 W" i. u' M9 D//加速度,特別明顯的機器上,運行在非常高的進料速度,但可能負面2 ?0 W# T$ S6 o' A7 W5 E
//影響性能。正確的值為這個參數是依賴于機器的,所以建議
. i7 {( [: N. r8 u+ d//這只設置為高。近似成功的價值觀可以廣泛的范圍從50到200或者更多。
6 Q1 B  ~; r4 N* z# Q//注意:改變這個值也變化的部分步驟的執行時間緩沖。% N/ {2 O! ^2 e/ o
//增加這個值時,這個商店部分緩沖區的總時間減少,反之亦然。使
5 N! E) A% O0 V: Z# q1 t//特定步驟段緩沖是考慮這些變化增加/減少。
8 I! _, ]) Y0 o% H; _" ?- [, D) H. K4 O$ G* `0 A
#define ACCELERATION_TICKS_PER_SECOND 100  //加速度的時間分辨率管理子系統。更多更平穩' p6 g3 @1 M, V& T1 p( y

2 s4 l4 @8 i4 K/ Z& F- R0 t0 i// Adaptive Multi-Axis Step Smoothing (AMASS) is an advanced feature that does what its name implies,
  [' O2 U6 G; B4 K: H4 A1 Z* ^* K8 z// smoothing the stepping of multi-axis motions. This feature smooths motion particularly at low step( m1 [% K/ \1 e2 d9 g& r( p
// frequencies below 10kHz, where the aliasing between axes of multi-axis motions can cause audible ( d' K/ i4 s( t+ m# G% O
// noise and shake your machine. At even lower step frequencies, AMASS adapts and provides even better
2 ~+ h! e: l) j, M: X& s// step smoothing. See stepper.c for more details on the AMASS system works.
! Z2 V# c$ h  W( R9 `//自適應多軸步平滑(積累)是一種先進的功能,它的名字所暗示的那樣,
7 ^) A# K. N4 Q9 \1 f0 C( {, J//平滑的多軸步進運動。這個特性平滑運動尤其是在低一步
1 S9 q; _+ S: J7 l//頻率低于10 khz,軸之間的混疊的多軸運動可能導致音響4 e1 O- Y( W/ `4 D; o
//噪音和震動你的機器。在更低的頻率步,積累適應并提供更好2 X" D- q! p' P0 Q5 `$ b
//步驟平滑。看到步進。c更多細節的積累系統的工作原理。
, ~6 B; M8 I7 a) a( t" r7 {" B
! g% L7 b& I( b( E2 \. Z. y#define ADAPTIVE_MULTI_AXIS_STEP_SMOOTHING  // Default enabled. Comment to disable.//自適應多軸步平滑/ \  Q: A0 H3 g0 S. i' R0 S& z+ C: K; ~
# D7 u' d* W6 ?# {1 B* R1 A$ G
// Sets the maximum step rate allowed to be written as a Grbl setting. This option enables an error
* t4 J" `; a5 c% ?6 _// check in the settings module to prevent settings values that will exceed this limitation. The maximum
. F5 w, A0 C* E  Q. e3 |6 O// step rate is strictly limited by the CPU speed and will change if something other than an AVR running; `* _! d, K" ^4 o% {& S  Z3 \
// at 16MHz is used.
8 U: T! j' W7 e5 O* J0 q0 K// NOTE: For now disabled, will enable if flash space permits.
: ]( N# l$ _% @( ~' X- N  n//設置最大一步速率可以寫成Grbl設置。這個選項可以使一個錯誤
5 f0 @! F4 v, L* \* H6 U* p//設置模塊中檢查,防止設置值將超過這個限制。的最大
# g& N" f5 A9 O$ Y# a3 Y$ I: }//步驟嚴格限制的CPU速度也會改變如果是其他AVR運行- O8 }0 N" ~1 ^6 m6 Z
//使用16兆赫。" z( n3 D  c' N' @  c2 C, A
//注意:現在殘疾,將使如果flash空間許可。
) @! I" T1 Q$ J" @
8 |, Q/ ^& |8 ]; E/ g2 ^3 _6 s# b// #define MAX_STEP_RATE_HZ 30000 // Hz 設置最大一步速率- }! o& [: e) X2 U- t, W& S

, @' k1 ^) n; {  x& {+ \5 r( }// By default, Grbl sets all input pins to normal-high operation with their internal pull-up resistors
# K/ @$ Z# @' s1 J# z5 M3 t& p/ R" l// enabled. This simplifies the wiring for users by requiring only a switch connected to ground,
: D" n4 G0 c' g& w1 n1 q. E6 h// although its recommended that users take the extra step of wiring in low-pass filter to reduce9 \0 _, s1 Z4 M
// electrical noise detected by the pin. If the user inverts the pin in Grbl settings, this just flips: ?; D- h& [3 V  M
// which high or low reading indicates an active signal. In normal operation, this means the user
$ J7 t# x6 Q& s- |// needs to connect a normal-open switch, but if inverted, this means the user should connect a
; M& y/ {: F/ n4 w// normal-closed switch.
1 M( K  T8 `6 X7 M& D, t// The following options disable the internal pull-up resistors, sets the pins to a normal-low ( Z2 r# c0 B' p4 X- {, }' s
// operation, and switches must be now connect to Vcc instead of ground. This also flips the meaning
' d9 S, F! s5 i. g" a( N& _7 E$ R// of the invert pin Grbl setting, where an inverted setting now means the user should connect a
% [, M) O4 p: Q& K6 [3 B" r. b// normal-open switch and vice versa.
5 @" ~0 r, |4 D6 y/ a9 N// NOTE: All pins associated with the feature are disabled, i.e. XYZ limit pins, not individual axes.
9 Y$ @& v, W$ {// WARNING: When the pull-ups are disabled, this requires additional wiring with pull-down resistors!
& z, C" l# m- f" V0 R0 O0 T//默認情況下,Grbl所有輸入引腳設置為正常高操作的內部上拉電阻1 w2 r$ I0 K7 k  X' V; i) E6 q
//啟用。這簡化了布線為用戶只需要一個開關連接到地面,& k2 O) U: T0 e8 h" b3 s
//雖然其建議用戶采取額外的步驟,在低通濾波器來減少布線
& P6 V* `7 z, ]3 \3 U//電噪音檢測銷。如果用戶反轉的銷Grbl設置,這只是翻轉* ^( x4 b. j. }, g. W* S
//讀高或低表明一個積極的信號。在正常操作中,這意味著用戶6 k8 k4 y4 E( h1 |$ H# n5 ]
//需要連接一個常開開關,但如果倒,這意味著用戶應該連接; i( n* `9 \) D( I! b+ u
// normal-closed開關。
. O* y, n( W  L8 k4 e4 l//以下選項禁用內部上拉電阻,一般低設置別針) y7 {: P7 T& d9 q  p
//操作,現在開關必須連接到Vcc代替地面。這也掀的意思
  o/ V4 v% @0 {//反銷Grbl設置,一個倒置的設置現在意味著用戶應該連接
% N- o( T& u+ N& V8 b//常開開關,反之亦然。
  z1 L1 l% ^; {0 k( E8 d+ G/ g0 C9 w//注意:所有針與功能被禁用,例如XYZ限制針,而不是單獨的軸。5 g$ D$ A, c; G- p0 S8 G
//警告:引體向上被禁用時,這需要額外的布線與下拉電阻!3 b- [" U5 ^0 k4 Y" n
. v. ]( ?% Z2 e9 D& n) O
//#define DISABLE_LIMIT_PIN_PULL_UP //以下選項禁用內部上拉電阻
; I: p/ e, j6 \" Q2 X//#define DISABLE_PROBE_PIN_PULL_UP5 a' h1 T& L* \
//#define DISABLE_CONTROL_PIN_PULL_UP, z. O$ R, @9 Z; h. F1 i
3 F1 h8 ?& Q. N9 y/ d) b* s
// Sets which axis the tool length offset is applied. Assumes the spindle is always parallel with % b5 _; L* E* R
// the selected axis with the tool oriented toward the negative direction. In other words, a positive* t; w- i& [; I% V( m- _
// tool length offset value is subtracted from the current location.
, h' o$ x3 r  y% U+ B6 N! A//設置哪個軸長度補償應用的工具。假設軸總是與7 X, S/ u: |, t& v* f) e, Y! `+ A
//選擇軸工具面向負方向。換句話說,一個積極的
1 E% O' s1 j, P  ]7 o. q( ~//工具長度偏移值減去從當前位置。
9 Z/ g2 n( L9 ], `( c% d. b# P- M: o' c
#define TOOL_LENGTH_OFFSET_AXIS Z_AXIS // Default z-axis. Valid values are X_AXIS, Y_AXIS, or Z_AXIS.設置哪個軸長度補償應用的工具- J  o' B* J, X2 e

4 C( W* [% e( m5 S/ m" n// Enables variable spindle output voltage for different RPM values. On the Arduino Uno, the spindle
  d6 G( J# s5 Y. T! D) v// enable pin will output 5V for maximum RPM with 256 intermediate levels and 0V when disabled.
1 m3 }& }/ R, s9 A  ^/ Y5 X// NOTE: IMPORTANT for Arduino Unos! When enabled, the Z-limit pin D11 and spindle enable pin D12 switch!2 t  T- J/ s  I4 J: H
// The hardware PWM output on pin D11 is required for variable spindle output voltages.
6 H, H' e0 r* h6 L8 N" q* ~//允許變量軸輸出電壓不同的轉速值。Arduino Uno,主軸
/ X9 R- f* `5 {3 e% k6 ~7 {; P//啟用銷將輸出5 v的最高轉速256中級水平和0 v時禁用。0 A: C4 I1 g9 ?& Q7 ^$ d) e' B8 `
//注意:重要Arduino凱澤本人!當啟用時,Z-limit銷這里和軸銷D12開關!5 a6 J8 T# \; c2 Y% C8 W; V
//硬件PWM輸出銷這里需要變量軸輸出電壓。
) x4 x9 Z- E* `5 \
( v+ n' q9 H% u9 K9 m! {! T#define VARIABLE_SPINDLE // Default enabled. Comment to disable.//允許主軸輸出電壓不同的轉速值! e8 Q( E3 j4 Y7 _. D; s3 i* h
, z5 s6 `" j0 I# v) \0 Y! a
// Used by the variable spindle output only. These parameters set the maximum and minimum spindle speed
- u5 [* r7 f$ Y4 q) X$ l$ g% K: n// "S" g-code values to correspond to the maximum and minimum pin voltages. There are 256 discrete and
; V* E1 G. E0 }// equally divided voltage bins between the maximum and minimum spindle speeds. So for a 5V pin, 10004 x! M- R7 E. I1 W9 f
// max rpm, and 250 min rpm, the spindle output voltage would be set for the following "S" commands: - b/ e9 Z" b: r1 p6 `* D+ g1 S; |5 k! G2 w
// "S1000" @ 5V, "S250" @ 0.02V, and "S625" @ 2.5V (mid-range). The pin outputs 0V when disabled./ n" O  j2 ^3 C# {5 \
//使用的變量軸輸出。這些參數設置最大和最小軸轉速
; j% s3 n7 O0 h$ \//“S”刀位點值對應于銷電壓的最大值和最小值。有256個離散和/ Q1 J  ]% ?8 g9 `
//電壓平均分配箱主軸速度的最大值和最小值之間。所以對于一個5 v銷,10003 G: b. f6 c/ f3 Y+ G0 C
// max rpm,250分鐘rpm,主軸輸出電壓將為以下“S”命令:$ z5 q7 s! M: L/ v
// @“S1000 5 v,“S250”@ 0.02 v,“S625”@ 2.5 v(中檔)。銷輸出0 v時禁用。
+ X  I6 N  o7 I5 d. _5 F% G" ?7 H& W) o0 q0 k5 n
#define SPINDLE_MAX_RPM 1000.0 // Max spindle RPM. This value is equal to 100% duty cycle on the PWM.
6 e0 f( l  @* ?2 @#define SPINDLE_MIN_RPM 0.0    // Min spindle RPM. This value is equal to (1/256) duty cycle on the PWM.  a+ r1 R+ I# @& O0 @' K/ M
. o& J- P  P) [9 X* x" K7 `6 p
// Used by variable spindle output only. This forces the PWM output to a minimum duty cycle when enabled.( F# o2 y) \# E; w) I7 }. N
// When disabled, the PWM pin will still read 0V. Most users will not need this option, but it may be
1 I/ J1 M* y/ Z2 D6 m. m/ L# U; s// useful in certain scenarios. This setting does not update the minimum spindle RPM calculations. Any1 M$ Z+ i. @! x, m- V# y$ W: ^
// spindle RPM output lower than this value will be set to this value.8 G" v3 y7 ~6 _
//使用的變量軸輸出。這迫使PWM輸出最小占空比時啟用。
5 u6 k- @) A$ [8 y//當禁用,PWM銷仍讀0 v。大多數用戶不需要這個選項,但是它可能是
, o3 |* g% C, C% D1 D" K3 b' x//在某些情況下很有用。這個設置不會更新最小主軸轉速計算。任何# ?4 t9 U$ I5 `- W. \' u
//輸出軸轉速低于這個值將被設置為這個值。
1 o! H5 {1 K! e8 ]" J- C0 b% C9 v+ N- Q; T
// #define MINIMUM_SPINDLE_PWM 5 // Default disabled. Uncomment to enable. Integer (0-255)2 V7 n: I2 K$ ]2 Z
" M3 v5 \" a/ ]  j
// By default on a 328p(Uno), Grbl combines the variable spindle PWM and the enable into one pin to help * \- B% z! S* i, k& p
// preserve I/O pins. For certain setups, these may need to be separate pins. This configure option uses
6 B9 i+ H  I! g' [# X; `// the spindle direction pin(D13) as a separate spindle enable pin along with spindle speed PWM on pin D11. / |: t1 ?0 \- ^  l  }
// NOTE: This configure option only works with VARIABLE_SPINDLE enabled and a 328p processor (Uno).
* W$ g4 ^/ e% D! P3 m// NOTE: With no direction pin, the spindle clockwise M4 g-code command will be removed. M3 and M5 still work.
; C. B) h8 O9 \: f, j" {+ u5 _// NOTE: BEWARE! The Arduino bootloader toggles the D13 pin when it powers up. If you flash Grbl with
2 d; V: X# w' b# A// a programmer (you can use a spare Arduino as "Arduino as ISP". Search the web on how to wire this.),
4 n# C, T5 T5 x: }* T// this D13 LED toggling should go away. We haven't tested this though. Please report how it goes!, Z7 {% I" ], L7 ^& [9 Q
//默認ATmega328 p(Uno),Grbl結合變量軸PWM和使到一個銷的幫助* ?6 T; B. n" Z# \% J# }0 S0 z
//保存I / O管腳。對于某些設置,這些可能需要單獨的別針。這個配置選項使用
: d$ e6 [* K8 a) I+ F9 q//方向軸銷(D13)作為一個單獨的軸銷上啟用銷以及主軸轉速PWM這里。
& x; d7 m3 ?, [: A, q//注意:該配置選項僅適用于VARIABLE_SPINDLE啟用和328 p處理器(Uno)。$ A- F, Z% }1 Y# _* q/ a/ t
//注意:沒有方向銷,主軸順時針M4刀位點命令將被刪除。M3和M5仍然工作。- _7 Z: l' z5 L% g( p
//注意:小心!Arduino引導裝載程序切換D13銷的權力。如果flash Grbl4 o8 \* Y5 ]# y- S+ T( z
//程序員(您可以使用一個備用Arduino“Arduino ISP”。搜索網絡如何線),
7 M; c; z# j* F- g* p* `//這D13導致切換應該消失。我們還沒有測試這個。請報告將會怎樣!
5 Z7 M- c$ E3 x5 a5 d$ `3 ~9 D; p8 N8 J, K  Z
// #define USE_SPINDLE_DIR_AS_ENABLE_PIN // Default disabled. Uncomment to enable.: @5 S& G9 ]/ m0 r
$ Q0 Z9 r" G9 [: j
// With this enabled, Grbl sends back an echo of the line it has received, which has been pre-parsed (spaces
5 g. N+ }6 v# u' T! f// removed, capitalized letters, no comments) and is to be immediately executed by Grbl. Echoes will not be $ b. Z3 C; t3 C9 a* G1 k
// sent upon a line buffer overflow, but should for all normal lines sent to Grbl. For example, if a user / ]' A: D$ a( k! q$ O# Y0 C, q
// sendss the line 'g1 x1.032 y2.45 (test comment)', Grbl will echo back in the form '[echo: G1X1.032Y2.45]'./ J+ ~2 }# i( x& C3 T
// NOTE: Only use this for debugging purposes!! When echoing, this takes up valuable resources and can effect
/ z* n+ M# ^! v5 s// performance. If absolutely needed for normal operation, the serial write buffer should be greatly increased
5 M8 {2 H* e* P& k6 Y) d% ]// to help minimize transmission waiting within the serial write protocol.
3 c5 f  h( Z" a1 ^1 D( y( z( l( V: T6 U' X+ e
//啟用,Grbl發回的回聲線已收到,已預編譯(空間, W' l7 Q8 r0 d- w$ j
//移除,大寫字母,沒有評論),由Grbl立即執行。回聲將不會- E& P0 l, F. ]/ W4 @
//發送一個線緩沖區溢位,但應該對所有正常線路送到Grbl。例如,如果一個用戶
' `, O7 [) Z: z3 c5 _1 t4 I//發送線的g1 x1.032 y2.45(測試評論)形式”,Grbl將回聲”(回聲:G1X1.032Y2.45]”。
) A# l; G% o' q: J//注意:只使用這個調試! !當呼應,這占用了寶貴的資源,可以影響
/ E4 Q+ y1 v* ?" x- w$ j4 {+ r7 A//性能。如果正常運行所需的絕對,串行寫入緩沖器應該大大增加
0 R6 W) ^! n: T//幫助最小化傳輸等系列內寫協議。
% y. \( [  n9 U$ M" L
, F+ B: c) `8 H. M" C// #define REPORT_ECHO_LINE_RECEIVED // Default disabled. Uncomment to enable./ K7 P: t0 L4 O1 S

! |6 W( i: B/ {  a1 V* l8 z// Minimum planner junction speed. Sets the default minimum junction speed the planner plans to at
8 F- x! R9 o5 X# r; _// every buffer block junction, except for starting from rest and end of the buffer, which are always+ l2 E9 z  q' t0 [0 S" q
// zero. This value controls how fast the machine moves through junctions with no regard for acceleration
8 j$ t6 n# ~3 z9 S; A" T2 ^; B// limits or angle between neighboring block line move directions. This is useful for machines that can't" z. u' I7 {/ N% \2 R9 i
// tolerate the tool dwelling for a split second, i.e. 3d printers or laser cutters. If used, this value
: D- _% L, Q* h! |# t// should not be much greater than zero or to the minimum value necessary for the machine to work.
) l# `& L# I! M3 v
0 k1 d3 ?* I/ F//最小規劃師結速度。設置默認最小連接速度規劃計劃
6 P2 d3 }# n& n* l$ G, K, X//每一個緩沖塊接頭,除了從結束休息和緩沖區,它總是$ o/ P# X. ^" o  m8 T# M
// 0。這個值控制機器的速度穿過路口,沒有考慮加速度
( k$ c! n4 ~5 g" q7 v: {+ C//限制或相鄰塊之間的角線方向移動。這是有用的機器,不能
0 T' ?- f: v8 s( x7 C1 B//容忍工具居住某一剎那,即3 d打印機或激光切割機。如果使用這個值" T1 C9 `" N0 \1 R6 B% s
//不應大于零或機器工作所需的最小值。
5 f9 E8 \  T$ E
& `& T! c6 q% q5 t; |- s#define MINIMUM_JUNCTION_SPEED 0.0 // (mm/min)
( O) }/ \/ o. K4 ^6 w7 D) C3 u4 C8 r" e9 C9 [
// Sets the minimum feed rate the planner will allow. Any value below it will be set to this minimum; T4 i# P+ J- |& U/ Q. u
// value. This also ensures that a planned motion always completes and accounts for any floating-point
& ^+ J, G2 J3 g, [6 k' E// round-off errors. Although not recommended, a lower value than 1.0 mm/min will likely work in smaller
' v3 k) C9 ^4 d// machines, perhaps to 0.1mm/min, but your success may vary based on multiple factors.
9 Z2 x7 P) N5 t. b0 {- }2 e//設置計劃將允許的最小進給速率。任何價值低于它將被設置為最低值。這也保證了運動計劃總是完成,占任何浮點
6 @) I- u. Q3 `0 p1 c$ H1 K, v//舍入錯誤。雖然不推薦,價值低于1.0毫米/分鐘可能會在較小的工作  u- p7 `8 Y6 v/ K
//機器,也許到0.1毫米/分鐘,但你的成功基于多種因素可能會有所不同。# b& \$ o0 V1 j' L) ]9 w7 r" w
( T7 f2 n9 E) w2 e5 q) g
#define MINIMUM_FEED_RATE 1.0 // (mm/min)//設置計劃將允許的最小進給速率
% {/ S% x. K, p2 q) m& M6 m; h, O: O: I# K
// Number of arc generation iterations by small angle approximation before exact arc trajectory 3 ~0 S# z6 k3 Q: |! z
// correction with expensive sin() and cos() calcualtions. This parameter maybe decreased if there
0 y: _" q8 k& V' |: ^4 O* r9 m) X// are issues with the accuracy of the arc generations, or increased if arc execution is getting
( j6 m7 W0 H( N// bogged down by too many trig calculations.
6 c+ T1 U/ H$ e$ P; R//弧生成迭代次數之前小角度近似精確的弧線軌跡
4 N. K9 Q' U- C* e' i; B3 [//修正與昂貴的sin()和cos()calcualtions。如果有這個參數可能減少( G, r  w( r8 G4 ^( c
//與弧一代又一代的準確性問題,或如果電弧執行得到增加7 q3 {) F; f5 a, M
//太多的三角計算的泥潭。: e: q# g% I3 i' T3 ]# o9 D

. a! k+ F  R# b  _8 ^/ M#define N_ARC_CORRECTION 12 // Integer (1-255)/ Z0 U1 O- H, I' ?

, M  S! m6 ]. D9 i// The arc G2/3 g-code standard is problematic by definition. Radius-based arcs have horrible numerical 3 L/ ^6 \- L4 V& s! a5 D- }9 J# O
// errors when arc at semi-circles(pi) or full-circles(2*pi). Offset-based arcs are much more accurate
8 F( V3 T# q( p// but still have a problem when arcs are full-circles (2*pi). This define accounts for the floating
& u+ E8 Y$ R% H// point issues when offset-based arcs are commanded as full circles, but get interpreted as extremely
5 K4 K# y# |2 V9 m// small arcs with around machine epsilon (1.2e-7rad) due to numerical round-off and precision issues.0 M/ Z) v6 y! [* T; c. s% B8 L
// This define value sets the machine epsilon cutoff to determine if the arc is a full-circle or not.0 |) S: g0 K, l: d. A7 X) S
// NOTE: Be very careful when adjusting this value. It should always be greater than 1.2e-7 but not too/ r% J; U; M3 @( v; y  A
// much greater than this. The default setting should capture most, if not all, full arc error situations.
4 l6 j$ O* v0 z9 [3 I( ?) C//弧G2/3刀位點的標準定義是有問題的。Radius-based弧有可怕的數值4 F$ L6 j4 P% }  z
//錯誤當電弧在半圓(π)或原點(2 *π)。Offset-based弧更準確) h7 E- C" F9 m9 H9 [
//但仍有一個問題當弧原點(2 *π)。這個定義占浮動
" d1 d: y6 j" a( p: H0 \+ F) M' A7 m//當offset-based弧吩咐點問題完整的圓,但解釋為極
$ m$ d5 i+ W0 e6 B. f" Q9 Z//小弧機周圍ε(1.2 e-7rad)由于數字舍入和精度問題。
, c  Z- T0 F+ W# z; L//定義值設置機器ε截止來確定電弧是一個原點了。: g4 {0 ^8 N6 W3 `; r7 K+ D" y2 A
//注意:調整這個值時非常小心。它應該總是大于1.2 e -但不要太" u. H% w- }, e
//比這大得多。默認設置應該捕獲大部分,如果不是全部,全部錯誤的情況。
0 K  n+ y+ [7 [( |/ ^5 i
- N1 e! G" @# E% R$ [#define ARC_ANGULAR_TRAVEL_EPSILON 5E-7 // Float (radians)
+ m* `+ C8 M' p9 J8 }8 ^9 p7 u! q1 f; x; W0 E" ~
// Time delay increments performed during a dwell. The default value is set at 50ms, which provides0 {7 u( |+ t% ]& X
// a maximum time delay of roughly 55 minutes, more than enough for most any application. Increasing" X8 V3 Z. o9 e/ g2 i2 o$ p; v
// this delay will increase the maximum dwell time linearly, but also reduces the responsiveness of
4 f: h# \8 u  W) o2 z$ o) k// run-time command executions, like status reports, since these are performed between each dwell ' W" T( l" w* X3 ]/ a+ o0 e
// time step. Also, keep in mind that the Arduino delay timer is not very accurate for long delays.
( S, S6 L% b) {/ N//延時增加表現在住。默認值設置為50毫秒,它提供了) w6 n0 K/ ]; T1 d* {6 r. _+ {
//最大延時約55分鐘,足夠對大多數任何應用程序。增加( \2 {# ]: [2 ~
//這種延遲將增加線性最大停留時間,也減少了響應能力
) [6 \' j8 Q+ {0 w; |% }6 ], L//運行命令執行狀態報告一樣,因為這些每個住之間執行, u- h4 c' u! v+ f0 ^7 x
//時間步。還有,記住,Arduino延遲計時器不是很準確的長時間延誤。) I* C9 ?, W1 D; J/ _

& a% c9 z+ ~2 h7 E4 T! l#define DWELL_TIME_STEP 50 // Integer (1-255) (milliseconds)
4 r+ ~, y8 c: e' A& ?+ x- q
3 N) u# l1 d# M# V// Creates a delay between the direction pin setting and corresponding step pulse by creating
8 M1 C0 \; J& h! O$ X& r) {// another interrupt (Timer2 compare) to manage it. The main Grbl interrupt (Timer1 compare)
$ _6 x) u! k- d  T! Z1 \* }: \// sets the direction pins, and does not immediately set the stepper pins, as it would in
: s, y% V/ v5 ]// normal operation. The Timer2 compare fires next to set the stepper pins after the step & v8 c+ x3 F) @- r0 b  f) h
// pulse delay time, and Timer2 overflow will complete the step pulse, except now delayed
2 p0 _5 b  M5 W5 `& T// by the step pulse time plus the step pulse delay. (Thanks langwadt for the idea!)
& p) E3 U" ?4 C) V( D6 _( s- |/ R  h' `// NOTE: Uncomment to enable. The recommended delay must be > 3us, and, when added with the
0 l" C1 Q: ~; w- Z  r, R// user-supplied step pulse time, the total time must not exceed 127us. Reported successful& ~2 M/ ^% l* ?) _
// values for certain setups have ranged from 5 to 20us., T# P6 D7 O3 R/ ^+ {. Y- w
//創建一個方向銷之間的延遲脈沖通過創建設置和相應的步驟' ?. S& O& d  M1 g  u0 Z0 j5 e
//另一個中斷(Timer2比較)來管理它。主要Grbl中斷(Timer1比較), W  `" }1 O& U! G3 V% W% t
//設置方向針,不立即設置步進針,因為它會在/ S( m3 N2 `& b. b" D$ u) {0 r
//正常操作。Timer2比較火旁邊設置步進針后一步
. f# ^' U9 i5 S  l" B# |//脈沖延遲時間,Timer2溢出脈沖將完成的步驟,現在延遲除外
! e7 q* e0 h0 Y& m7 g: M$ c. \//脈沖時間加上的一步一步脈沖延遲。(感謝langwadt主意!)
2 D2 @1 Z, F5 g# z7 o. Q! G//注意:取消啟用。必須> 3,建議延遲,當添加的$ m6 C  d+ j' z
//用戶提供的步驟脈沖時間,總時間不得超過127美元。成功的報道
  W$ \. L/ y5 }//值對某些設置范圍從5到20。5 @& Z% |/ d" i5 \5 ?1 V
7 r0 r) G- F5 O/ `  ^, e
// #define STEP_PULSE_DELAY 10 // Step pulse delay in microseconds. Default disabled.
5 C! ~/ y( `' H
8 Y# C6 G0 M! \% g// The number of linear motions in the planner buffer to be planned at any give time. The vast
- D6 @0 h( T) T0 \  a! t, f: D# I// majority of RAM that Grbl uses is based on this buffer size. Only increase if there is extra
- H8 ?0 k: z) i! i6 p2 G+ y// available RAM, like when re-compiling for a Mega or Sanguino. Or decrease if the Arduino
' w: Q0 T5 A( x! _! d" z" w// begins to crash due to the lack of available RAM or if the CPU is having trouble keeping/ ^" u" ]2 ]% h+ U$ K$ b8 c# v+ I
// up with planning new incoming motions as they are executed. ) W# y# \6 O: u% U+ C* e
//線性運動規劃師緩沖區的數量在任何給出時間計劃。絕大
, F1 Z- S; `: f" r' q" J6 n  W//多數RAM Grbl使用基于這個緩沖區的大小。如果有額外的只會增加
) j, K5 R4 \/ j! T" Z: H//可用內存,比如當基于大型或Sanguino。如果Arduino或減少
1 u) c+ d/ a/ n+ s% J7 B* _//開始崩潰由于缺乏可用的RAM或者CPU是難以保持1 a& M2 v4 w4 J; l9 u+ F# T0 e
//與規劃新傳入的動作執行。
; A+ m% N0 ^6 d
8 i* t- u7 G9 ^& o5 {/ v// #define BLOCK_BUFFER_SIZE 18  // Uncomment to override default in planner.h.
3 r0 f3 g. B1 X1 C- T
$ Y1 X# T. [# K- I; _// Governs the size of the intermediary step segment buffer between the step execution algorithm" U/ {7 z9 X- |1 s
// and the planner blocks. Each segment is set of steps executed at a constant velocity over a, J, `: `1 x8 \: x
// fixed time defined by ACCELERATION_TICKS_PER_SECOND. They are computed such that the planner
2 \2 j. y& P' \" z, {( K! L// block velocity profile is traced exactly. The size of this buffer governs how much step
: V( J7 |0 }! `+ o. Y% A* I// execution lead time there is for other Grbl processes have to compute and do their thing
2 d1 V/ k7 L) ^9 W2 s// before having to come back and refill this buffer, currently at ~50msec of step moves.1 }* V/ c/ l. D- p3 B
//控制之間的中間段緩沖大小的步驟執行算法
! y" r# H$ Q5 y//和規劃師塊。每一部分的步驟執行在一個恒定的速度
2 b+ X3 ^+ _: v7 S$ J- S//固定的時間由ACCELERATION_TICKS_PER_SECOND定義的。他們計算的計劃
; _2 K( P1 Q( s# v. o//塊速度剖面追蹤到底。這個緩沖區的大小控制多少步驟9 p9 C6 u' E0 j, a) t6 O
//執行時間有其他Grbl過程需要計算和做他們的事情
9 q$ o9 |# A+ S( k//之前必須回來重新填充這個緩沖區,目前移動~ 50毫秒的一步。: j$ L& y5 j: ?3 Z
6 p% N3 [. _6 c$ G. u
// #define SEGMENT_BUFFER_SIZE 6 // Uncomment to override default in stepper.h.
& P/ ?$ g  {& H; f# Z& ~) W$ l. _
* _) K2 i# g9 A// Line buffer size from the serial input stream to be executed. Also, governs the size of
0 I6 E  Q5 w4 v& H; f. x. U! I9 h. b// each of the startup blocks, as they are each stored as a string of this size. Make sure+ d' y* y3 _9 ]" t
// to account for the available EEPROM at the defined memory address in settings.h and for+ K8 S" ~+ t5 B1 H5 G* ]9 Q
// the number of desired startup blocks.
  _, Q' l" k" u8 n, B* ^: w" X1 w+ R// NOTE: 80 characters is not a problem except for extreme cases, but the line buffer size * [3 g. V2 e* j; b5 E! O
// can be too small and g-code blocks can get truncated. Officially, the g-code standards
6 [$ q2 g7 O  e3 U// support up to 256 characters. In future versions, this default will be increased, when
; p# u7 O8 _6 E1 F: j// we know how much extra memory space we can re-invest into this.
, b. l/ [* G& _9 q7 G3 v//行執行串行輸入流的緩沖區大小。同時,大小的控制
* c0 s( W" x; j$ f//每個啟動模塊,它們分別存儲為字符串的大小。確保
& \. T/ s) b. r7 {//占可用eepm定義內存地址的設置。h和& A* P; e" J7 l# K
//需要啟動塊的數量。
. j' R$ ]6 H6 U//注意:80個字符不是一個問題,除了極端的情況下,但線緩沖區大小0 g4 r: |& j  u8 H& _6 i
//可以太小和刀位點塊可以截斷。正式,刀位點標準
9 E0 ^- _+ ^2 [9 _( |. g* e: c//支持多達256個字符。在未來的版本中,這個違約將會增加,當2 O1 y) z/ U$ @) g$ `  `
//我們知道多少額外內存空間的時候我們可以再投資。
7 [) \9 G- }" w* |7 T% }% u& k8 F
4 r1 w$ u6 D! n/ O. \9 h// #define LINE_BUFFER_SIZE 80  // Uncomment to override default in protocol.h
4 ?0 g+ F# ]7 Y. ]/ N  Y  
0 W- ~0 o! m1 ]" N6 A// Serial send and receive buffer size. The receive buffer is often used as another streaming& q1 q+ @3 `  {/ l7 O
// buffer to store incoming blocks to be processed by Grbl when its ready. Most streaming
, q5 b1 R8 h# Z/ p2 B/ q// interfaces will character count and track each block send to each block response. So, 6 F0 u; r: i0 @8 S; j
// increase the receive buffer if a deeper receive buffer is needed for streaming and avaiable
. `) S! v) y/ l4 Z- u$ x// memory allows. The send buffer primarily handles messages in Grbl. Only increase if large
0 D7 J2 |1 M1 I! k// messages are sent and Grbl begins to stall, waiting to send the rest of the message.
: |3 s$ T1 W' [- K// NOTE: Buffer size values must be greater than zero and less than 256.
! |, B, ]$ A. Z; {" }. z0 \* F( P// #define RX_BUFFER_SIZE 128 // Uncomment to override defaults in serial.h* A! q4 M* e& ?4 e$ U
//串行發送和接收緩沖區大小。接收緩沖區通常用作另一個流
1 L2 u, N0 H* i+ b. x- u* Q//緩沖存儲傳入的塊來處理Grbl當它準備好了。最流
8 Q( W; {, I# i7 W& p% r//接口將字符計數和跟蹤每一塊發送給每個塊的回應。所以,' Z; g9 t! ^+ Y- k
//增加接收緩沖區如果需要更深層次的接收緩沖區為流,、
8 ?" n- U: }1 K( {9 ]% J7 g$ c) c//內存允許。Grbl發送緩沖主要處理消息。只會增加如果大
; U* D, J( W( ]//消息發送和Grbl開始停滯,等待發送其余的消息。
7 ^# w2 F# A, s, [# j5 A2 y9 z5 f//注意:緩沖區大小值必須大于零,小于256。
, G7 H6 p" \! ^// # define RX_BUFFER_SIZE 128 / /取消serial.h覆蓋默認值
6 P2 ]6 t# N* F# l. e
0 ?3 _7 }; \3 M- I# e/ x* N; ~
% p2 p6 a* f6 x/ t, x* _, t// #define TX_BUFFER_SIZE 64
# M8 Z  z+ H5 C8 D  6 i" \. \/ V/ i8 ]7 r7 z- i
// Toggles XON/XOFF software flow control for serial communications. Not officially supported
$ p& ]7 G' ~% {( K// due to problems involving the Atmega8U2 USB-to-serial chips on current Arduinos. The firmware
: p, a9 e: ~3 x3 G: q! t// on these chips do not support XON/XOFF flow control characters and the intermediate buffer
, O/ l* c! S/ \" b* u. F# Z// in the chips cause latency and overflow problems with standard terminal programs. However,
( r) {. `# W8 F7 P3 ~5 K8 ^1 T/ _// using specifically-programmed UI's to manage this latency problem has been confirmed to work.4 l' z* y& s3 K+ V
// As well as, older FTDI FT232RL-based Arduinos(Duemilanove) are known to work with standard
# n; d, ^( e* E9 H  B" r$ N// terminal programs since their firmware correctly manage these XON/XOFF characters. In any
  f% ^  h: J! N' @8 O" C2 g! N) I// case, please report any successes to grbl administrators!- e$ h5 D6 U0 m, K0 y' J/ C
//切換為串行通信發送樸通/發送葡開軟件流控制。不是官方支持
( _1 L$ N2 _5 `2 k7 Q( O( \# E//由于問題涉及Atmega8U2 USB-to-serial當前arduino芯片。固件
; s$ j6 z/ g' t: W) o2 k4 S6 t//在這些芯片不支持發送樸通/發送葡開流控制字符和中間緩沖區
( _1 @5 ~( m1 J5 n: x8 c- A& d//芯片導致延遲和溢出問題的標準終端程序。然而,
# W) y+ f/ o4 U( i" l$ U//使用specifically-programmed UI的管理這個延遲問題已經確認工作。
' g$ X4 I) Z4 }//以及老FTDI FT232RL-based arduino(Duemilanove)是已知的標準
  ]8 K/ H7 k1 r9 k: G* C0 L' A% s9 c//終端程序因為他們正確的固件管理這些發送樸通/發送葡開的角色。在任何6 v7 J/ N1 O. B6 P: r' k4 t  `
//情況,請報告任何成功grbl管理員!1 s  ?% k  }3 U$ h$ t( x
4 s0 t; x& o2 w' l% e- Z4 y
// #define ENABLE_XONXOFF // Default disabled. Uncomment to enable.
: b0 J6 b3 ?7 n& ?0 Q7 S) U  m: Y/ T1 I
// A simple software debouncing feature for hard limit switches. When enabled, the interrupt
4 D# R7 V( B: Y) @3 L* ]% x// monitoring the hard limit switch pins will enable the Arduino's watchdog timer to re-check 2 w- ]5 P4 w6 c, O, |% v* {
// the limit pin state after a delay of about 32msec. This can help with CNC machines with
7 d4 ?; r1 L7 N// problematic false triggering of their hard limit switches, but it WILL NOT fix issues with
, M- B; r+ l$ t// electrical interference on the signal cables from external sources. It's recommended to first4 J4 G2 B7 R6 @" ?& f) ^
// use shielded signal cables with their shielding connected to ground (old USB/computer cables
9 |9 N$ c2 ]; ^* p# i# y// work well and are cheap to find) and wire in a low-pass circuit into each limit pin.
% Z) s1 t  v/ n7 j! w//一個簡單的軟件消除抖動特性硬限位開關。當啟用時,中斷
) O# Z! x: V) P& ]//監控硬限位開關針將使Arduino的看門狗定時器重新審視
: t+ G9 x4 B* p* d( s' x% C9 ?//銷的極限狀態后約32毫秒的延遲。這可以幫助與數控機器: v. [7 y" D# Y6 i/ H
//問題錯誤引發的硬限位開關,但是它不會解決問題6 ?. s/ u: y( y
//電干擾信號電纜從外部來源。首先它的建議
3 A- E- y+ c  ^! ~* d5 A2 X//使用屏蔽信號電纜的屏蔽連接到地面(老USB /計算機電纜
+ B; Z  B7 _- t! P//工作得很好,很便宜)和線低通電路到每個限位銷。
. t. u3 S1 z( u1 {  T- K- M9 Z
- t! x, U: e6 y. G// #define ENABLE_SOFTWARE_DEBOUNCE // Default disabled. Uncomment to enable.- s2 F2 i) V  G- p  R& ]: F4 t0 y
  f" Q& r2 Q( a6 a4 U2 z
// Force Grbl to check the state of the hard limit switches when the processor detects a pin1 A! I$ r8 N4 e( p6 H# f/ l" t0 i1 x
// change inside the hard limit ISR routine. By default, Grbl will trigger the hard limits
- C+ Z; I! l# F( |// alarm upon any pin change, since bouncing switches can cause a state check like this to
4 G: N5 _* G: F8 b, l7 N3 L; c0 W// misread the pin. When hard limits are triggered, they should be 100% reliable, which is the/ M5 h; I- e, i( a
// reason that this option is disabled by default. Only if your system/electronics can guarantee
  \  m' Q. p& L8 p) I. i5 ]  t// that the switches don't bounce, we recommend enabling this option. This will help prevent
8 |/ ~' e& y3 [5 J/ k// triggering a hard limit when the machine disengages from the switch.7 C! m) _* F) l
// NOTE: This option has no effect if SOFTWARE_DEBOUNCE is enabled.
% v% y0 r1 `/ k+ L  ~% g6 D//力Grbl檢查硬限位開關的狀態,當處理器檢測到一個銷
* q& Z! [; D7 t: g! ?//改變內部硬限制ISR例行公事。默認情況下,Grbl將觸發硬限制  c. T" [% b- n3 |  O
//報警在任何銷更改,因為跳開關可以導致這樣的狀態檢查
( f0 ?/ K& B/ \//誤讀了銷。硬限制觸發時,他們應該100%可靠,這是
6 [/ S( L  K$ z* [# b  o: j//原因,這個選項默認是禁用的。只有在你的系統/電子產品可以保證
' N" N) `. D# S3 `/ s; g//開關不反彈,我們建議啟用這個選項。這將有助于防止
! S0 {: o# o  F7 N//觸發機退出時硬限制開關。; t/ C& C0 S* J" ~
//注意:這個選項如果啟用了SOFTWARE_DEBOUNCE沒有影響。
: a/ @% u6 V5 H5 Q3 n  R$ V& I, O5 h8 O/ s$ I
// #define HARD_LIMIT_FORCE_STATE_CHECK // Default disabled. Uncomment to enable.- p2 l; T. ?. ^4 q) E
8 ~  B) b8 P. X* _$ S
' ]( _7 W; [( O# G+ f# [- y  v9 A+ c+ D
// ---------------------------------------------------------------------------------------$ d* h. `% z: N3 d' s' k# k2 l! _8 O
// COMPILE-TIME ERROR CHECKING OF DEFINE VALUES:編譯時錯誤檢查的定義值:
5 R) j. q- B( p4 T4 q4 G
* e4 m2 X  F2 P& t#ifndef HOMING_CYCLE_0
! {) j* B  W! i! M' ^5 U5 u  #error "Required HOMING_CYCLE_0 not defined."
; D& D8 O/ v) v7 {, a0 @! W* @#endif* W2 R" h& Q1 B5 ~; {

) E6 v3 ^- j! }2 d& O) b#if defined(USE_SPINDLE_DIR_AS_ENABLE_PIN) && !defined(VARIABLE_SPINDLE)6 n8 v( \: Y' h( ?4 Q
  #error "USE_SPINDLE_DIR_AS_ENABLE_PIN may only be used with VARIABLE_SPINDLE enabled"
1 w! u! D8 C( u! m" u#endif
0 h2 {+ W* D! B1 O6 x, O: m
( V$ w; Z/ }1 T8 V4 D5 [0 J#if defined(USE_SPINDLE_DIR_AS_ENABLE_PIN) && !defined(CPU_MAP_ATMEGA328P)
: O- C5 G6 Q2 v8 G$ @  #error "USE_SPINDLE_DIR_AS_ENABLE_PIN may only be used with a 328p processor"
/ {8 _, i6 d+ c' z4 j/ l  E#endif. z3 ?! B; b" Q' H

! t$ F6 s/ J5 t" H9 |! S// ---------------------------------------------------------------------------------------' H5 e# ^+ e- V* w+ T0 c& ^- i* w* P/ l
6 M' x- w7 I0 n. ?+ `  ?$ b' q& l9 h

; w  c8 }9 @8 n0 m8 n1 }9 |5 a#endif9 I' F% W: U9 T+ F5 H

2 [" B3 a' n+ u6 ?; @$ N& T0 q& G

' B) `9 Y  _' F  U" e: u" ~/ E; R$ {4 h+ k+ S; e

& D  T  s' I- q+ W! e$ x) u1 R& G* v: T) ^+ t

8 O5 ]  K2 b- |# [- v7 A3 x; {4 C: d
' k. b4 @1 e' ?

6 B1 ^$ |/ ^% w
$ c2 Z' E/ Y1 {& I4 }) [
( J5 b* S$ V) b) r/ m! s4 T
  t$ ]4 v/ V7 ?5 Z% r4 d( a% v
3 c* L* I6 k/ _1 T
+ @+ B2 {( Z* e! |$ I6 ?( r& U+ M; h/ l* b* n

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?注冊會員

×

評分

參與人數 2威望 +201 收起 理由
mrplplplpl + 1 思想深刻,見多識廣!
管理團隊 + 200

查看全部評分

回復

使用道具 舉報

2#
 樓主| 發表于 2016-8-21 00:11:42 | 只看該作者
那些沒有用的照片不知道怎么就上去了好討厭。
3#
 樓主| 發表于 2016-8-21 00:14:16 | 只看該作者
( X+ [! h4 _$ w# D
4#
發表于 2016-8-21 05:50:22 | 只看該作者
      樓主厲害!
5#
發表于 2016-8-21 08:22:05 | 只看該作者
謝謝樓主,先收藏一下,慢慢學習
6#
發表于 2016-8-23 15:11:25 | 只看該作者
這是什么寶貝?
7#
發表于 2016-8-23 15:11:47 | 只看該作者
換了個瀏覽器Chrome,試試能否發言了。
8#
發表于 2016-8-23 20:12:33 | 只看該作者
樓主厲害
回復

使用道具 舉報

9#
 樓主| 發表于 2016-8-23 23:03:17 | 只看該作者
補充; g0 X# S" I, Y" Y
程序運行protocol_execute_realtime(); /運行實時命令。, H* d9 A. l5 D0 |
// Executes run-time commands, when required. This is called from various check points in the main
0 S: l8 A% B3 g. B; |: ]. J0 p// program, primarily where there may be a while loop waiting for a buffer to clear space or any
; e* x" w' l& h9 a( o* @// point where the execution time from the last check point may be more than a fraction of a second.9 u1 n9 N' A# F- N; O
// This is a way to execute realtime commands asynchronously (aka multitasking) with grbl's g-code0 a: b0 U4 x. \: Q9 ?
// parsing and planning functions. This function also serves as an interface for the interrupts to
7 J) g  [1 }9 K  F// set the system realtime flags, where only the main program handles them, removing the need to7 C5 L9 @5 k  @/ P3 \8 t; e
// define more computationally-expensive volatile variables. This also provides a controlled way to % {6 t+ b6 w. X  z/ x" ]8 k2 ?
// execute certain tasks without having two or more instances of the same task, such as the planner
7 M! D* R5 |$ u; }; g; u// recalculating the buffer upon a feedhold or override.4 V* e  N( {# m) T1 }
// NOTE: The sys_rt_exec_state variable flags are set by any process, step or serial interrupts, pinouts,
" T: L! j9 O& {- A/ h/ x% I// limit switches, or the main program.) L3 B7 I( z" a2 f, E9 t; i+ n! W7 N

4 `. Z" _7 e" g: m# f//執行運行時間命令,在需要時。這就是所謂的從各種主程序要檢查站
' w) c6 d) j# V' `//,主要是那里可能是一個while循環等待緩沖區空間或任何
+ w) e$ T& |7 N, j) O//執行時間從過去的止點可以超過幾分之一秒。
% N2 x# ]) @5 G' I: ^# l7 P; ?//這是一種異步執行實時命令(又名多任務)grbl的刀位點. \" h6 V5 g5 ~
//解析和規劃功能。這個函數也可以作為一個接口,用于中斷
- L. e8 [# b4 h7 G1 e//設置系統實時的旗幟,只有主程序處理,消除的需要) Y  U  F0 ?  x  c- q) s+ ~
//定義更多的計算昂貴volatile變量。這也提供了一種控制方法
& S# i& O) I; ^& b; w( @//執行某些任務不相同的兩個或多個實例的任務,比如計劃. S! J. W% T5 C4 O7 l- l+ ~- h) z
//重新計算緩沖feedhold或覆蓋。
/ J  Q/ J9 ~9 B0 \7 _  h//注意:sys_rt_exec_state變量標志設置任何過程,步驟或串行中斷,插腳引線,
9 r3 b% Q+ u& ^( Z$ H//限位開關或主程序。. Z) y6 f) e$ Z& x/ n
void protocol_execute_realtime()
' `. f* C/ J, ?{
' |4 Z$ ~5 Z( }: V" N2 }        // Temp variable to avoid calling volatile multiple times." j; x% q6 c3 r" c, B1 q
        // 臨時變量來避免多次調用不穩定。
6 @' Y& D: w. P$ ~. M        uint8_t rt_exec;
, [% W  A4 a, _        do{4 }! ~) r: F; Y- l; H6 H" s
          if (rt_exec) {                 // 有標志位置位進入
1 L5 ^3 B) a5 S! y2 E& h       
; |* @$ x8 O& q% ]% L1 K0 _            sys.state = STATE_ALARM; // 設置系統為報警狀態
( b  m/ j/ r2 ]( [" C; G& a      report_alarm_message(ALARM_HARD_LIMIT_ERROR);        //報告報警信息為接近極限值
8 X/ N7 K4 x" i- V0 n+ x5 D- q    } else if (rt_exec & EXEC_ALARM_SOFT_LIMIT) {                        //報告執行軟件限位報警
2 l9 s# A$ E# p% z+ U      report_alarm_message(ALARM_SOFT_LIMIT_ERROR);        //報告出現軟件限位報警4 q" C: X0 T3 o# S6 s+ H; I
    } else if (rt_exec & EXEC_ALARM_ABORT_CYCLE) {                //執行停止循環報警      
3 |4 f- I5 n9 k0 D" L      report_alarm_message(ALARM_ABORT_CYCLE);                //出現終止循環報警
9 z7 g4 _5 ^/ x* }+ V5 E$ w    } else if (rt_exec & EXEC_ALARM_PROBE_FAIL) {                        //執行探查失敗報警% G( Y$ }  Y' n* s( x3 f* K& ?: \. x' s
      report_alarm_message(ALARM_PROBE_FAIL);                        //出現探查失敗報警
: \5 k: Q$ i3 s) X# K    } else if (rt_exec & EXEC_ALARM_HOMING_FAIL) {                //執行返回原點失敗報警
9 o$ {  s# s/ m2 g+ J9 R      report_alarm_message(ALARM_HOMING_FAIL);                //出現返回原點失敗報警
, J$ Q; q: I) h0 a' H; j% `( f( R    }/ q. ]$ ?! P: k6 `+ w( f% l
& S1 G' D7 y) |, Q
    // Halt everything upon a critical event flag. Currently hard and soft limits flag this.
6 U+ E  ~" h) m# [% Y2 I* v    // 停止一切在一個關鍵事件標志。目前硬和軟限制標志: S% q1 m: ?0 @7 h: T6 w5 x5 |
           if (rt_exec & EXEC_CRITICAL_EVENT) {                //如果系統是循環事件進入8 ^; I/ b& H9 f( e& l& O
             report_feedback_message(MESSAGE_CRITICAL_EVENT);        //報告反饋信息
; p* d$ _% ?8 }7 X              bit_false_atomic(sys_rt_exec_state,EXEC_RESET);                         //清除目前的復位狀態
% c2 t7 @2 _3 L4 m, _) s6 M7 b/ V/ E0 J! T9 O5 z
        bit_false_atomic(sys_rt_exec_alarm,0xFF);                                 // 清除所有報警標志  x7 p( Q$ n* _: c
        }        ' c: k) k5 b5 p' Z' o

9 D8 A( Z& S$ v! t8 |上面代碼將rt_exec = sys_rt_exec_alarm ,如果rt_exec為真,打印不同報警信息
& }; v1 h  L8 j和限位保護信息,然后清除報警狀態% I' A( I' a; u' V
___________________________________________________________________________
  S" O5 X, _  A7 @  W沒有報警進行執行下面代碼,執行了終止命令,串口打印命令
8 ^# ^" V. H( S/ y         // Check amd execute realtime commands        校驗和執行實時命令
" l3 ]5 \4 a1 O1 Y5 t          rt_exec = sys_rt_exec_state; // Copy volatile sys_rt_exec_state' I# q% ~. K4 c, T2 Z% H8 v

" r# j( q& y6 [/ g% b+ T! W( o        if (rt_exec) { // 輸入標志是正確的執行
, K9 G* \+ L8 r' T! x, ~; {) ?5 C+ l& O/ Y6 r9 n! [) P5 d) c$ k
            // Execute system abort. 執行系統終止命令
0 o5 x  P# w3 n- d$ e; e            if (rt_exec & EXEC_RESET) {
( f! ~) o9 G* t/ I7 H3 q              sys.abort = true;  // Only place this is set true.
1 x" g& O. s( O3 D6 I; q              return; // Nothing else to do but exit.
4 p9 R6 Z; y' E, |# b        }& ^2 I' N" V9 t! c" O

. b8 ^& S/ @  W            // Execute and serial print status 執行和串口打印狀態7 X$ }: R* i  l- X' X- S: E
            if (rt_exec & EXEC_STATUS_REPORT) {
- }9 M% U6 n( _+ k" r9 _              report_realtime_status();        //報告實時狀態
7 m: S/ ^. [; o0 N2 {8 b5 _              bit_false_atomic(sys_rt_exec_state,EXEC_STATUS_REPORT);        //清除報告狀態清零' N3 U3 C1 V# C* K! e, S3 G9 J
            }
3 L% K" p: D2 t9 c; M) X_____________________________________________________________________________7 I# Z. @9 s- @$ U6 X
下面代碼# W# `1 y; F' s# c
//執行狀態。3 K  O1 a# S8 G: G4 F6 X/ ~
//注意:所涉及的數學計算持有應該足夠低對大多數人來說,即使不是全部,
4 e. \! j9 W" m//操作場景。一旦啟動,系統進入暫停狀態0 |. a: \# ]" ?
//主程序流程,直到重置或恢復。
, V( o) z9 R8 X0 D  a; _# }待辦事項:檢查模式?如何處理呢?可能沒有,因為它只會在空閑,然后重置Grbl。$ f4 a4 e: }& e( q
狀態檢查容許狀態的方法。
/ E# H9 ^$ c3 ~: W  y# x0 x2 n
: `. A* I, L0 e* I- ~        //如果全局各自報警標志位其中(執行取消動作) | (執行進給保持) | (執行安全門)任意一位為真進入. E# x: p2 f* F
            if (rt_exec & (EXEC_MOTION_CANCEL | EXEC_FEED_HOLD | EXEC_SAFETY_DOOR)) {       
* b, |) g. b- s' x5 ?; h1 _$ A) q' J" v/ J
        //如果是循環狀態執行暫停狀態
3 o) }, M/ K* i  P9 k) t% e        if (sys.state == STATE_CYCLE) {
  R4 \3 l( m4 r        st_update_plan_block_parameters(); //通知stepper module驗算減速。8 K% I& C& x5 U# C
        sys.suspend = SUSPEND_ENABLE_HOLD; // 開始暫停標志
1 b& L& }& ?' X& d5 A+ T        }( ?5 ?$ _9 B/ W

# [( n8 J& x# k0 P        // 如果,Grbl空閑不在運動。簡單的指示暫停就緒狀態。
+ r1 I6 `% y- v4 e2 ]5 E        if (sys.state == STATE_IDLE) { sys.suspend = SUSPEND_ENABLE_READY; }, w, r! ]# N5 _* v( I

$ t) D: g- Z( p- l" f5 \, Y
4 Y/ e' ?+ p- |. m& o        //執行和標志和減速運動取消并返回空閑。主要由探測使用周期
. l- C1 A! _, E) [        //停止和取消剩余的運動。      
6 d/ ~% P+ D  h9 c- g! Q        if (rt_exec & EXEC_MOTION_CANCEL) {  v& b- `" T; Y7 W- z1 U
          if (sys.state == STATE_CYCLE) { sys.state = STATE_MOTION_CANCEL; }
4 |, z1 B/ a8 G7 y! }          sys.suspend |= SUSPEND_MOTION_CANCEL;
, M, i: h1 U0 m) `" Q) z. T+ o        }. i4 y' B2 b% N7 L

2 A! q9 F) z/ Y. \1 ]$ Z7 M        // 只在循環時執行進給保持減速
7 Y) f0 }4 L( h! |$ n" ?% ^% A0 T         if (rt_exec & EXEC_FEED_HOLD) {
7 L8 g1 ^% l6 W        //只有安全門為1才執行保持進給狀態賦值
" Q3 [' F0 O& o+ N  \          if (bit_isfalse(sys.state,STATE_SAFETY_DOOR)) { sys.state = STATE_HOLD; }+ I; Q1 J) d2 e5 I9 ^
        }$ R! G, `9 z8 `7 M2 {

) N' B' V1 c' P7 I5 |        if (rt_exec & EXEC_SAFETY_DOOR) {
* B1 h5 S) D1 G) L5 l" Y) D) _          report_feedback_message(MESSAGE_SAFETY_DOOR_AJAR); + G5 W% \2 k8 J3 c! O5 T
/ /如果已經活躍,準備好重新開始,CYCLE_STOP標志設置為強制斷開。
% n% l: t0 _! g( [/ /注意:只是暫時設置“rt_exec”變量,不是動蕩的“rt_exec_state”變量。% c  ^% D( c8 d% U, k
          if (sys.suspend & SUSPEND_ENABLE_READY) { bit_true(rt_exec,EXEC_CYCLE_STOP); }
! J$ U0 ~/ E+ D* V6 @7 l7 }" u) Y          sys.suspend |= SUSPEND_ENERGIZE;$ J& D( p% H8 q6 g, o: w# g5 }7 Y
          sys.state = STATE_SAFETY_DOOR;
$ _" A: y) ]7 v3 @7 O( ^# o        }
. ^0 o, r, \, W1 J" f2 m# P$ H8 z- q# ]3 k  s% N0 [1 P! m, o; c$ z6 b
bit_false_atomic(sys_rt_exec_state,(EXEC_MOTION_CANCEL | EXEC_FEED_HOLD | EXEC_SAFETY_DOOR));   
; e: u* _+ o- \8 V
7 F  {  R& J% }8 g: G  _2 B" K; h9 _}
$ {8 `; Y! O( F7 q以上代碼執行了
4 b' t5 @0 `) ]" I# s! D1.如果全局各自報警標志位其中(執行取消動作) | (執行進給保持) | (執行安全門)任意一位為真進入8 X/ D- @: f2 L! `
2.系統為閑著狀態, 開始循環狀態, 回原點狀態, 控制取消狀態, 開始保持狀態, 開始安全門狀態時進入% r9 @& t8 P3 y4 T* D
3.如果是循環狀態執行暫停狀態
3 X" j- R9 \9 e3 ^% x# I9 M4.如果系統閑置狀態執行暫停就緒狀態% L/ @- H" \' p* i% ~6 W6 i
5.執行動作取消9 g! i# |6 ^5 T7 J
6.如果是保持進給狀態,執行保持進給狀態/ H5 M; v$ j% `: e2 C& M
7.執行安全門狀態
3 C) `2 e9 O* G+ c( t+ p: w最后執行bit_false_atomic清標志清除(執行取消動作)(執行進給保持)(執行安全門)標志位                 
& W! Z% P8 K8 R/ c$ [_____________________________________________________________________________+ }) t1 C- B# u; j

1 G5 ?7 \8 W4 C9 p( |5 S    // Execute a cycle start by starting the stepper interrupt to begin executing the blocks in queue.. ^3 G  R3 B. v1 n- b
    // 執行一個循環開始啟動步進開始執行中斷隊列的街區3 v  M8 n  k  g/ w6 k: h; O% ]
    if (rt_exec & EXEC_CYCLE_START) {        //循環開始狀態進入7 y! v& |$ S/ ]/ ]) u* O' H
      // Block if called at same time as the hold commands: feed hold, motion cancel, and safety door.
% _% w: \' l0 B2 q3 V/ t      // Ensures auto-cycle-start doesn't resume a hold without an explicit user-input.
. x8 c8 |1 r. @% _5 @) _1 a          //塊如果在同時舉行的命令:保持進給,運動取消,和安全的門。 //確保auto-cycle-start沒有簡歷沒有顯式的用戶輸入。
( p4 V" p- Q% M5 v( f0 _! L           * g% q6 c1 P4 z  ~. U: A
      if (!(rt_exec & (EXEC_FEED_HOLD | EXEC_MOTION_CANCEL | EXEC_SAFETY_DOOR))) {   //狀態機如果不是保持進給,運動取消,和安全的門。 / L# g1 T! Q7 q: r$ G8 k3 g
        // Cycle start only when IDLE or when a hold is complete and ready to resume.$ \, S4 s5 _+ `. @  P+ r: }% a
        // NOTE: SAFETY_DOOR is implicitly blocked. It reverts to HOLD when the door is closed.. g1 R. j$ R  q& G8 K  B
                //循環開始時只有當閑置或持有完成并準備簡歷。
. s5 |6 w. v* d5 a  }( _9 S                //注意:SAFETY_DOOR是隱式地屏蔽。它返回的時候門是關閉的。   
5 M* P. {& C* |1 l8 N% Q* k
) Z% t/ u- J* }! T+ S8 Y. J; a                // 如果系統狀態為閑著狀態,系統狀態為開始進給或運動取消,暫停標志為位重新開始
. d+ b; H; v* v        if ((sys.state == STATE_IDLE) || ((sys.state & (STATE_HOLD | STATE_MOTION_CANCEL)) && (sys.suspend & SUSPEND_ENABLE_READY))) {& Y8 p# e  a8 h. g: ^
          // Re-energize powered components, if disabled by SAFETY_DOOR.
( A' ~; P3 H2 `2 K8 r8 h          //        由SAFETY_DOOR重振組件供電,如果禁用。
7 u2 R& G7 S3 s4 q          if (sys.suspend & SUSPEND_ENERGIZE) {
: J/ K. u- \( u) Z            // Delayed Tasks: Restart spindle and coolant, delay to power-up, then resume cycle.& ]8 ~- l  ~# Y8 k
            //延遲任務:重新啟動主軸和冷卻劑,延遲升高,然后恢復周期。
1 x) {; O6 u) r. `" _: e+ ?/ o3 {2 T            if (gc_state.modal.spindle != SPINDLE_DISABLE) {   //主軸模式不是失能進入
# A: Q  x$ H; x* h- d              spindle_set_state(gc_state.modal.spindle, gc_state.spindle_speed); //設置狀態和速度: g6 ~6 n+ \& _: c' |
              //待辦事項:阻塞函數調用。最終需要一個非阻塞。
" n& A0 a7 a/ ^+ W. q4 }6 `9 C                delay_ms(SAFETY_DOOR_SPINDLE_DELAY); // TODO: Blocking function call. Need a non-blocking one eventually.
4 k! O1 r# y% j, T5 q( U0 h            }
+ x2 k' Q6 z4 g            if (gc_state.modal.coolant != COOLANT_DISABLE) { 1 A' V9 R! ?5 Q( l6 n! [1 Q; t
              coolant_set_state(gc_state.modal.coolant);
  t0 {7 E8 y# y- D              delay_ms(SAFETY_DOOR_COOLANT_DELAY); // TODO: Blocking function call. Need a non-blocking one eventually.
. \% N4 q4 B6 m1 {            }# \2 `& a/ A9 N  i
            // TODO: Install return to pre-park position.' v. o0 _% }; ~# m
          }
6 f4 @" h9 V# o$ Z# h% i______________________________________________________________________________________________________________& g1 U4 T5 F+ ?& F  W$ v
          // Start cycle only if queued motions exist in planner buffer and the motion is not canceled.
1 n: d" r3 e3 X9 p1 a9 a* ^                  
, p/ {! ?/ y' u8 R( I- Z                  //只有在隊列馬達存在規定的緩沖,并且動機沒有讓取消,才會循環
+ L) B7 g4 l# N. I6 Q# B( Z                  
: R+ Z$ [. [7 l9 K          if (plan_get_current_block() && bit_isfalse(sys.suspend,SUSPEND_MOTION_CANCEL)) {
' X4 p- Y" @* ]1 S$ [) u            sys.state = STATE_CYCLE;
- c# u$ J* A5 h1 O* B8 Y            st_prep_buffer(); // Initialize step segment buffer before beginning cycle.初始化步開始循環之前
" A4 ?: ]6 |( C9 K7 C& N3 x            st_wake_up();
; ^0 A  N6 O3 l4 {8 v          } else { // Otherwise, do nothing. Set and resume IDLE state.否則,什么也不做,設置和復位空閑模式+ C  n( F& h9 i1 a. M% N
            sys.state = STATE_IDLE;
1 e  j6 T  b& U% }          }
! D; I) t) e( ?. n& Q) `# R% e" J          sys.suspend = SUSPEND_DISABLE; // Break suspend state.
7 I' S- w' R( H+ n8 h8 y# x$ Q! @' S        }
+ [- J2 C+ G' P) q      }   
' j" P0 D, Q9 R" y3 P6 l1 \1 n      bit_false_atomic(sys.rt_exec_state,EXEC_CYCLE_START);       
3 G+ Y: p* Q1 r# C$ ?* O/ \    }
" l; K3 u$ \/ ?( I) k, D: z- ?3 j& N5 o0 ?8 N3 L+ Q8 `5 N* g
_______________________________________________________________________________________________________. @% M" ]* V& f/ g! b+ s, g% \
    // Reinitializes the cycle plan and stepper system after a feed hold for a resume. Called by   X+ O4 m4 ~5 I1 _
    // realtime command execution in the main program, ensuring that the planner re-plans safely.
7 k. ?# f0 t/ Q% O    // NOTE: Bresenham algorithm variables are still maintained through both the planner and stepper- J/ @( ^2 j, I/ F2 v3 z2 e- m
    // cycle reinitializations. The stepper path should continue exactly as if nothing has happened.     `5 h+ o. ?5 a+ I+ @3 B- Q# c
    // NOTE: EXEC_CYCLE_STOP is set by the stepper subsystem when a cycle or feed hold completes.
; f# n+ `9 I0 u
9 t% u: q$ T* I- p$ D  L2 o        //重新啟動后循環計劃和步進系統的進給保持簡歷。通過實時命令執行主程序,確保安全計劃重新計劃。* U( Z- q3 d; C* S' J0 R3 }5 z
        //注意:畫線算法變量仍保持通過規劃師和步進
# M3 R( N  T; t/ l        //循環僅。步進路徑應該繼續,好像什么都沒發生一樣。       
# }& T' t% U& {% G% y" G        //注意:EXEC_CYCLE_STOP由步進子系統周期或進給保持時完成。
& Q$ ^4 g. L& h  A% Q* j4 i* Y1 @; O% c- m, _
    if (rt_exec & EXEC_CYCLE_STOP) {                         //如果是循環停止狀態進入' J& Y$ o* B$ r1 F+ b
      if (sys.state & (STATE_HOLD | STATE_SAFETY_DOOR)) {
! R$ H% f; n3 \        // Hold complete. Set to indicate ready to resume.  Remain in HOLD or DOOR states until user0 X5 h( O. Q& U6 Q
        // has issued a resume command or reset.2 ~$ \3 e) D# G& P* v* x' x! r
. p  M5 I7 Q3 S$ c. O
                //保存完整。設置為指示準備簡歷。繼續持有或門狀態,直到用戶
/ @" V- \2 c% }4 {                //已發布了一份簡歷命令或重置。" R8 O0 i$ S: c: Y# t& i4 b/ `
                . a0 W% I5 c5 Z9 V
        if (sys.suspend & SUSPEND_ENERGIZE) { // De-energize system if safety door has been opened. 如果安全的門已被打開。斷開系統8 x& h9 v$ u: P
          spindle_stop();9 v3 ?4 {1 z) m
          coolant_stop();) Q4 Z! c  ~9 q% u" R/ n) r$ x* w
          // TODO: Install parking motion here. 安裝停車動作。4 _# k. l) j1 ~1 H3 ~
        }; F( P7 h8 x6 _3 L& d! ]
        bit_true(sys.suspend,SUSPEND_ENABLE_READY);8 _5 I5 C, [, G* f
      } else { // Motion is complete. Includes CYCLE, HOMING, and MOTION_CANCEL states. 電機完成,循環,回原點,,MOTION_CANCEL& ^# ~( G3 o. y4 [# s* c
        sys.suspend = SUSPEND_DISABLE;
/ A% O9 M" A- ^% [5 f" W6 {        sys.state = STATE_IDLE;
4 t( q! S2 [3 u% N6 x2 F      }
/ Q7 |2 h, R% p( I2 b7 [" k5 F      bit_false_atomic(sys.rt_exec_state,EXEC_CYCLE_STOP);( S+ {& t8 |8 m. R  J
    }; _( b4 q; f" g6 K6 b5 R9 b
    7 |# X3 i! _4 u% M( G' X) U
  }
% W- e( u) D. t# y___________________________________________________________________________________________________; N1 ~" J0 L9 |
& D  f5 [8 T; ^' A; M6 w0 W
  // Overrides flag byte (sys.override) and execution should be installed here, since they
+ O- g2 m& u  b  // are realtime and require a direct and controlled interface to the main stepper program.6 Z& H7 `+ h: T- D  l* n& D! H; F% o
2 f: P8 Q2 X6 U# E& X
  //重寫標志字節(sys.override)和執行應該安裝在這里,因為他們
& o: r0 l! z+ ]8 Y  //實時和需要直接和控制接口的主要步進程序。
; E0 \: c% q7 f9 w1 E" z) _+ u! M0 b# H5 [6 q! X1 }% e' G" z* V

  |! t, W* W8 d7 a  // Reload step segment buffer 重新加載步段緩沖
6 p7 t4 O3 a2 {% E1 B! |2 N0 l2 P9 b  if (sys.state & (STATE_CYCLE | STATE_HOLD | STATE_MOTION_CANCEL | STATE_SAFETY_DOOR | STATE_HOMING)) { st_prep_buffer(); }
, m) k1 A8 e$ l5 T/ t- h
# T9 C; Q/ c# S& a' F& ^" \9 v  // If safety door was opened, actively check when safety door is closed and ready to resume.
: k9 w! K) L7 C* e  // NOTE: This unlocks the SAFETY_DOOR state to a HOLD state, such that CYCLE_START can activate a resume.        7 e/ Z# z; ]9 l, _- L
' Z, `7 C0 ]3 {* I4 S! \
//如果安全的門被打開,積極檢查當安全門關閉,準備簡歷。1 @" h7 {9 A' Q) ^0 A5 C- f# l; l( X
  //注意:這解鎖SAFETY_DOOR狀態保持狀態,這樣CYCLE_START可以激活一個簡歷。
" \1 [! c1 H7 i/ r$ A# P+ ]1 c& w. W8 ]- V0 L
  if (sys.state == STATE_SAFETY_DOOR) {                 //安全門狀態進入
2 T, e4 t) |+ O/ C, h% w    if (bit_istrue(sys.suspend,SUSPEND_ENABLE_READY)) {
5 K) B# k2 _  ?  F* }! E      if (!(system_check_safety_door_ajar())) {# |7 P6 v4 p9 K7 q) w+ c% {
        sys.state = STATE_HOLD; // Update to HOLD state to indicate door is closed and ready to resume. 更新保存狀態指示門關閉,準備簡歷。: v: V5 \8 J6 G9 f8 [
      }
6 s& R! N# [) _# s    }  K& V" K: k3 H3 s3 k
  }2 o1 L" Z* i7 I
+ c2 v& O- [# l$ C# Y8 j2 k
  } while(sys.suspend); // Check for system suspend state before exiting.
; S8 z. `$ s1 c9 ^5 Q; r  
. `3 H4 C/ f6 x}  
10#
發表于 2016-8-25 09:31:12 | 只看該作者
樓主這些代碼。是網上搜來,然后自己組合的嗎?全是自己想的,那是牛逼了

點評

外國的開源軟件grbl,在研究它,將打注釋了下而已,研究透徹了好移植的其他平臺應用,學習階段。 https://github.com/grbl/grbl  詳情 回復 發表于 2016-8-25 22:19
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規則

Archiver|手機版|小黑屋|機械社區 ( 京ICP備10217105號-1,京ICP證050210號,浙公網安備33038202004372號 )

GMT+8, 2025-8-4 08:38 , Processed in 0.112523 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表
亚洲亚洲人成综合丝袜图片| 国产精品久久久久久久免费| 国产精品香蕉在线观看网| 啪啪网免费| 欧美 日韩 国产 在线| 婷婷在线播放| 水中色av综合| 免费国产成人午夜福利电影| 性中国videossexo另类| 青青操在线| 亚洲精品二区| 少妇无码av无码去区钱| www片香蕉内射在线88av8| 51国产偷自视频区视频| 国产欧美日| 少妇高潮淫片免费观看| 久久国产精品一国产精品金尊| 亚洲狠狠干| 国产亚洲视频免费播放| 好吊爽在线播放视频| 精品无码老熟妇magnet| 国产在线高清精品二区| 欧美三级网站| 依人在线观看| 欧美极品少妇xxx| 91啦丨国产| 麻豆国产97在线 | 中文| 色婷婷综合久久久久中文| 九色在线播放| 国产亲伦免费视频播放| 午夜影院h| 久久综合精品国产丝袜长腿| 久久久中文久久久无码| 午夜欧美成人| 啪啪国产精品| 韩国主播av福利一区二区| 国産精品久久久久久久| 精品高朝久久久久9999| 亚洲 欧洲 无码 在线观看| 国产成人精品优优av| 日本熟妇人妻xxxxx-欢迎您| 2022久久国产露脸精品国产| 亚洲欧美综合精品久久成人| 看全色黄大色黄大片男爽一次| 精品国产乱码久久久久久软件大全| 色一情| 成人亚洲网站| 看免费真人视频网站| 久久久久中文| 香蕉精品在线| 99re6在线观看国产精品| 热の综合热の国产热の潮在线| 日韩在线www| 偷窥第一页| 亚洲精品自产拍在线观看亚瑟| 国产制服丝袜亚洲高清| 天天射天天日本一道| 青青热在线精品视频免费观看| 少妇中文字幕| 欧美猛男性猛交视频| 日本少妇bb| 久久女女| xsmax国产精品| 欧美另类在线播放| 依人在线| 久视频在线| 91看片淫黄大片在线天堂最新| 精品无码久久久久久久动漫| 五月在线| 亚欧在线观看视频| 国产农村熟妇videos| www.精品视频| 日本aa在线观看| 国产成人综合在线观看| 香蕉久久久久久av综合网成人| 精品亚洲aⅴ在线观看| 人乳喂奶hd播放| 日韩福利在线观看| 欧美日韩激情视频在线观看| www九色| 99re6在线视频| 久久久精品妓女影院妓女网| 欧美老人巨大xxxx做受视频| 97熟女毛毛多熟妇人妻aⅴ| 日韩av无码精品一二三区| 亚洲深夜福利视频| 成人精品一区二区久久久| 色综合日韩| 国产三级在线看| 香蕉久久夜色精品国产更新时间| 国产精久久久久久| 国产一二三区av| 色丁香av| 国产极品美女高潮无套小趴菜| 在线观看片a免费不卡观看| 欧美一级欧美三级| 99久久国产综合精品女同| 国产精华xxx| 亚洲国产精品特色大片观看完整版| 五月天色婷婷综合| 最近中文字幕在线观看| 新婚夫妇白天啪啪自拍| 欧洲精品99毛片免费高清观看| 无套内谢少妇毛片| 亚洲国产精品91| 一本一本久久a久久精品综合小说| 久女女热精品视频在线观看| 国产免费又色又爽又黄女性同恋| 国产新婚夫妇白天做个爱| 中文字幕人妻第一区| 亚洲欧洲日产国码韩国| 亚洲天堂一区二区三区| 亚洲黄网在线| 图片区乱熟图片区小说| 天堂在/线中文在线资源 官网| 久久99精品久久久久婷婷暖| 又色又爽又高潮免费视频观看| 伊人激情视频| 三级男人添奶爽爽爽视频| 免费av在线网| 午夜免费1000| 欧美专区另类专区在线视频| 日韩中文字幕在线免费观看| 91在线免费视频| 精品九九九九九| 岛国不卡| 国产午夜人做人免费视频| 亚洲一区二区无码影院| 在线免费观看成人| 四虎成人久久精品无码| 99亚洲欲妇| 中文字幕乱码亚洲无线码| 97se亚洲综合在线| 天天躁夜夜躁很很躁麻豆| 国产男女猛视频在线观看| 亚洲欧美黑人猛交群| 久久精品视频播放| 无码人妻少妇精品无码专区漫画| 日韩欧美一级在线| www.youjizz.com偷拍| 熟女人妇交换俱乐部| 人人干干| 亚洲性自拍| 激情伊人| 九九九在线观看| 婷婷91| 久久看毛片| 夜夜躁狠狠躁日日躁2020| 国产美女诱惑| 久久精品国产色蜜蜜麻豆| 欧美高清熟妇啪啪内射不卡自拍| 天堂8资源8地址8| 亚洲综合无码久久精品综合| 欧美在线视频你懂的| 香港日本三级亚洲三级| 亚洲国产成人在人网站天堂| 美女主播精品视频一二三四| 澳门永久av免费网站| 69久久99精品久久久久婷婷| 91欧美在线视频| 激情小说在线观看| 国产又粗又硬又大爽黄老大爷视频 | 黄色网占| 日本www网站色情乱码| 色爽视频| 91精品国产色综合久久不8| 色激情综合| 亚洲国产成人精品无码区在线播放 | 狠狠激情| 在线免费看av网站| 色综合综合色| 国产传媒视频在线| 国产成人精品a视频一区www| 欧美激情18| 日本无遮挡吸乳视频| 怡红院成永久免费人全部视频| 欧美1区2区3区视频| 91视频综合| 久久精品免视看国产成人| 亚洲91在线| 极品人妻videosss人妻| 骚虎av在线| 天天干少妇| 成年人看的黄色| 国产精品网站在线| 少妇太紧太爽又黄又硬又爽小说| 国产精品嫩草影院桃色| 国产一级片精品| 一起艹在线观看| 国产欧美日韩精品a在线观看| 一本色道久久99精品综合蜜臀 | 日本妈妈9| 亚洲永久网址在线观看| 伊人久久成人| 激情五月婷婷网| a级在线免费观看| 日韩啪啪网站| 欧美天堂视频| 浓毛欧美老妇乱子伦视频| 国产欧美一区二区精品性色超碰| 在线免费观看污网站| 91久久免费视频| 国产桃色无码视频在线观看| 亚州综合网| 久久中文一区二区| 热久久91| www.夜夜操.com| 欧美尿交 magnet| 亚洲男人天堂网站| 青青草好吊色| 起碰97在线视频国产| 青草视频免费看| 精品国产毛片| 一区二区三区日韩视频在线观看| 最新无码专区视频在线| 色综久久综合桃花网国产精品| 欧美人与禽zozzozzo| 国产乱妇无码大片在线观看| 999riav| 亚洲三级视频| www成人黄色| 一区二区精品视频在线观看 | 亚洲成无码人在线观看| 无码视频一区二区三区在线观看 | wwwxxx 日本| 性三级视频| 欧美人与性动交ccoo| jjzzjjzz在线观看| 欧美一区二区国产| 久久久久久无码日韩欧美| 中国黄色毛片| 久久久一级黄色片| 免费av中文字幕| 久久久久99精品成人片牛牛影视| 69xx网站| 亚洲色大成影网站www永久| 中国女人特级毛片| 亚洲欧美校园春色| 亚洲经典一区二区| 国产成网站18禁止久久影院| 精品国产第一页| 中文字幕免费无码专区| 视频丨9l丨白浆| 五十路熟妇高熟无码视频| 91精品久久久久久久99蜜桃| 日韩视频网| 中文字幕第四页| 最新无码a∨在线观看| 性色免费视频| 黄片毛片视频| 99国产在线播放| 国产亚洲欧美日韩俺去了| 国模吧无码一区二区三区| 欧美hdse| 天堂资源官网在线资源| 91视频色| 影视av| 50一60岁老妇女毛片| 中文字幕视频在线| 韩国美女视频黄是免费| 久久精品国产只有精品66| 亚洲欧美一二三区| 韩日成人| 国产乱弄免费视频| 九九国产精品无码免费视频| www.99视频| 99视频在线精品免费观看6| 欧美高清x| 三级网站在线| 人人插插| 成人精品天堂一区二区三区| 老司机精品无码免费视频 | 亚洲国产成人手机在线观看| 欧美黑人xxxx性高清版| 亚洲欧美日韩愉拍自拍| h片观看| 婷婷日| 国产视频网站在线观看| 免费涩涩视频| 亚洲欧美在线观看| 成人激情综合网| 亚洲怡春院| 国产女女| 六月婷婷激情网| 中文成人在线| 狠狠躁狠狠躁东京热无码专区| 美日韩精品| 91精产品一区一区三区40p| 天天爱综合网| 国产禁女女网站免费看| 天海翼中文字幕| 久久一日本道色综合久久| 美女隐私免费看| www超碰久久com| 国产精品一区视频| 午夜私人成年影院| 色精品视频| 亚洲精品一区久久久久久| 韩国av一区| 国产伦精品一区二区三区视频我| 在线 | 一区二区三区| 天堂一二三区| 忘忧草日本在线www| 熟女少妇a性色生活片毛片| 国产欧美日韩免费| 在线亚洲韩国日本高清二区| 久久精品在| 伊人干综合| 成人av手机在线| av无码小缝喷白浆在线观看| 不卡的一区二区| 欧美日韩久久精品| 天堂网www在线资源| 久久综合给合久久狠狠狠88 | 婷婷爱五月| 麻豆精品人妻一区二区三区蜜桃| 亚洲精品一区二区三区早餐| av最新资源| 草逼视频网| 妺妺窝人体色www在线观看| 91丨porny丨国产麻豆| av片在线免费看| 最近最新中文字幕| 国产精品中文字幕在线| 国产精品视频一区二区噜噜| 天天干天天拍| 欧美日韩制服| av在线影音| 人间精品视频在线播放| 亚洲天堂成人av| 在线精品一区| 92国产视频| 自拍偷拍福利视频| 伊人色综合网一区二区三区| 操操日日| 欧美国产一级| 久久久噜噜噜| 麻豆影音| 无码福利写真片在线播放| 一本一道久久综合久久| 91成人海角社区| 成人av影视在线| 国产一级片播放| 一级色视频| 午夜私人成年影院在线观看 | 国产主播福利在线| 4438亚洲最大| 欧洲一卡2卡三卡4卡免费视频| 久久亚洲精品成人av无码网站| 人妻少妇精品视频二区| 亚洲自偷自偷偷色无码中文| 色拍拍在线精品视频| 免费黄色网址在线| av免费影院| 理论片久久| 欧美日韩不卡在线视频| 999国内精品永久免费观看| 色呦呦视频在线观看| 国产1区2| 婷婷色香合缴缴情av第三区| 草在线视频| 国产欧亚州美日韩综合区| 日韩欧美视频在线| 91免费国产视频| 九九在线观看免费高清版| 国产精品6999成人免费视频| 国产免费久久久| 国产精品国产馆在线真实露脸| 婷婷五综合| 亚洲成a人片在线www| 久久不见久久见免费视频1′| 久久久一级| 午夜视频在线观看免费视频| 国产对白视频| 性激情视频| 老司机福利院| 亚洲富人天堂视频| 久久久久久久久久福利| 久久久99精品免费观看乱色| 婷婷色九月| 十八岁污网站在线观看| 91中文字幕网| dy888亚洲精品一区二区三区| 久久久久久五月天| 一区二区www| 久久996re热这里只有精品无码| www偷拍com| 国产精品一区二区久久久| 想要xx在线观看| 人人人草| 76少妇精品导航| 国产女人高潮视频在线观看| 99在线观看| 欧洲成人综合| 青草一区| 国产国拍精品亚洲| 美女少妇一区二区| 国产一级爱| 爆乳护士一区二区三区在线播放| 欧美精品一区在线观看| 精品一卡2卡三卡4卡免费网站| 含羞草传媒mv免费观看视频| 久久久久一| 国产艳妇疯狂做爰视频| 一区二区三区福利视频| 中文字幕理伦午夜福利片| 国产亚洲中文字幕在线制服| 天天综合91| 亚洲精品一区二区冲田杏梨| 色狠狠综合网| 青青草五月天| 亚洲午夜影视| 思热99re视热频这里只精品| 天天澡天天揉揉av在线| 扒开双腿猛进入喷水高潮视频| 欧美不卡在线| 亲子乱子伦xxxx视频| 2018自拍偷拍| 男女做爰猛烈叫床视频免费| 久久久极品| 亚洲精品女人| 久久极品| 网红福利视频| 成人午夜大片| 国精品人妻无码一区二区三区d3 | 噜噜噜久久久| 国产超爽人人爽人人做人人爽| 又色又爽又黄的吃奶视频免费观看| h部分肌肉警猛淫文| 熟女乱色一区二区三区| 国产未成满18禁止免费看| 久久亚洲男人第一av网站| 91avcom| 一区二区中文字幕在线| 国产精品普通话| 国产成人久久精品av| 日韩内射激情视频在线播放免费| 4hu最新网址| 国产精品igao| 中文乱码人妻系列一区二区| 日日摸日日碰夜夜爽亚洲| 欧美亚洲一| 国产69精品久久久久毛片| 一级做a爰片久久| 无码人妻少妇精品无码专区漫画| 欧洲熟妇色xxxx欧美老妇多毛图片 | av无限看| av天堂亚洲国产av| 久久九九爱| 果冻传媒亚洲区二期| 国产成人亚洲影院在线观看| 午夜影院在线播放| 黑人黄色片| 色偷偷免费视频| 精品水蜜桃久久久久久久| 欧美做受69| 亚洲综合色婷婷在线影院p厂| tai9国产一区二区| av在线播放日韩亚洲欧我不卡| 免费一区二区| 亚洲精品一区二区三天美| 亚洲情在线| 天堂国产精品| 一本久道综合色婷婷五月| 蜜臀av无码国产精品色午夜麻豆| 少妇下蹲露大唇无遮挡0| 色视频综合| 亚洲中文无码永久免| av视| 国产高清卡1卡2卡3麻豆| 亚洲精品av一二三区无码| 国产97超碰| 精品国产亚洲午夜精品av| 好男人在线社区www在线观看视频| 超碰综合| 大奶子av| 亚洲视频在线一区| 日本成本人三级在线观看| 五月天青青草| 91av免费观看| 美女性高潮视频| 色一情一乱一伦一区二区三区四区| 国产a精品| 四虎1515hh海外永久免费| 日吊视频| 欧美自拍区| 黄色网战大全| 国产精品视频二区不卡| 日本免费一区二区三区视频| 宅男色影视亚洲人在线| 国产福利萌白酱在线观看视频| 欧美人成在线| 18国产免费视频| 国产一级黄色大片| av最新资源| 无码国产午夜福利| 哺乳期av| 激情久久亚洲小说| 亚洲熟女综合一区二区三区| 成人精品毛片va一区二区三区| 国产无套喷白浆在线播放| 欧美精品xx| 少妇人妻无码专区毛片| 亚洲精品一级片| 亚洲伊人久久精品酒店| 美女的奶胸大爽爽大片| 欧美区一区二区| 综合激情亚洲丁香社区| 日本123区| 午夜高清国产拍精品| a黄视频| 无码毛片一区二区本码视频| 亚洲va无码专区国产乱码| 国产精品骚| 一区二区三区免费视频观看| 久久久久影院色老大2020| 97人人超| 狼人伊人久久| 人妻少妇精品视频三区二区一区| 亚洲另类天堂| www.操com| 亚洲日本欧美在线| 国产人碰人摸人爱免费视频| 91极品在线| 午夜内射高潮视频| caobi视频| 日韩av片无码一区二区三区| 国产v片在线播放免费无码| 深夜福利视频免费观看| 性一交一乱一交一精一品| 十八禁在线观看视频播放免费| 免费无码av片在线观看国产| 女人张开双腿让男人猛桶| 日韩高清网站| 久久国产精品99精品国产987| 97精品| 九色视频偷拍少妇的秘密| 成人五区| 日本真人做人试看60分钟| 国产一区二区三区乱码在线观看| 青青青网| 国产精品永久在线| 青青在线播放| 国产特级乱淫免费看| 丰满岳乱妇在线观看视频国产| 国产av人人夜夜澡人人爽| 手机看片亚洲| ā片在线观看免费看无码| 懂色av蜜臂av粉嫩av| 日韩精品五区| 国产高清视频在线观看| 亚洲精品无码不卡av| 欧美城天堂网址| 91麻豆精产国品一二区灌醉| 国产福利在线播放| 好了av四色综合网站| 新狼窝色av性久久久久久| av网站大全在线观看| 国av在线| 午夜在线精品偷拍| 国产欧美日韩一区二区加勒比| 亚洲国产精品久久久久婷婷软件| 国产三级精品片| 永久免费精品视频| 亚洲精品美女视频| 91精品一区二区三区蜜臀| 国产与黑人在线播放| 老湿机69福利区无码| 久久九九久精品国产日韩经典| 辽宁熟女高潮狂叫视频| 超碰在线视屏| 久久精品人妻少妇一区二区三区| 精品久久一区二区三区| 高跟鞋av| 日本三级全黄三级a| 欧美日韩理论片| 涩涩爱在线| 国产cd人妖ts在线观看| 久久国产精品人妻丝袜| 国产在线精品免费| 九九在线精品视频| 222aaa亚洲精品国产| 国产一区二区精华| 成人白浆超碰人人人人| 91张津瑜 午夜在线播放| 国产777爽777| 亚洲v欧美v国产v在线观看| 色综合天天干| 国产av仑乱内谢| 国产乱码在线| 中文字幕在线播放不卡| av草逼| 日韩去日本高清在线| 交专区videossex农村| 免费成人在线观看| 成人免费毛片内射美女app| 国产999精品久久久久久| 人人爽人人爽人人爽人人片av| 黄色毛片在线| 欧美视频在线观看,亚洲欧| 亚洲综合在线观看视频| 五月婷婷社区| 欧美一级艳片视频免费观看| 999精欧美一区二区三区黑人| 新区乱码无人区二精东| 亚洲一区二区黄| 色婷婷久久一区二区三区麻豆| 欧美伦理影院| 黄色av网站免费| 亚洲视频综合| 少妇性色淫片aaa播放| 青青青国产精品国产精品美女 | 67194av| 天天干夜夜拍| 国产足控在线网站| 免费成年人视频| 1000部夫妻午夜免费| 成人在线激情| 最新亚洲人成网站在线影院| 秋霞无码久久一区二区| 中国xxxxx性按摩店| 日韩精品一区二区三区四区新区| 求个av网站| 日本一区不卡| 日本疯狂爆乳xxxx| 色在线影院| 泰国性xxxx极品高清hd| 男女做爰猛烈啪啪吃奶伸舌头下载| 肥嫩水蜜桃av亚洲一区| 美腿丝袜高跟三级视频| 成人h动漫精品一区二区原神| 黑色丝袜脚足国产在线看| 伊人久久久久久久久久| 依人成人网| 97人视频国产在线观看| 国产成人av在线| 18禁裸体动漫美女无遮挡网站 | 国产精品国产三级国av| 97se.com| 国产色情又大又粗又黄的电影 | 黑人狂躁日本妞一区二区三区| 精品国产一区二区三区免费| 日本欧美在线| 在线观看成人网| 嫩模一区| 福利一区二区在线| 国产gv在线观看受被做哭| 午夜视频a| 免费人成视频19674不收费 | 久久网站免费看| 性一交一乱一伦在线播放| 色黄大色黄女片免费中国| 精品99久久久久久| 99er国产这里只有精品视频免费| 国产精品视频h| 99国产精品99| 99精品国产兔费观看久久| 国产成人精品一区二区不卡| 伊人网综合视频| 成人免费观看49www在线观看| 波多野结衣亚洲视频| 小视频在线观看| 91福利张津瑜在线播放| 精品国产三级a∨在线无码| 无码专区无码专区视频网址| 日本乱妇乱子视频| 窝窝影院午夜看片| 国产女人40精品一区毛片视频 | 高潮流白浆潮喷在线播放视频| 国内露脸少妇精品视频| 97超碰97| 岛国视频一区| av中出在线| 国产精品21区| 色av免费| 成人午夜无码精品免费看| 一区二区国产高清视频在线| 老妇激情毛片视频| 欧美一卡二卡三卡四卡视频区| 天天操天天拍| 久久久性视频| 性视频欧美| 一本久道综合在线无码人妻| 久久中文字幕无码a片不卡古代| 国产在线精品欧美日韩电影| av免费无码天堂在线| 欧美一区二区日韩| 中文字幕一区二区三区精彩视频| 欧美日韩麻豆| 九九99久久精品综合| 亚洲国产一区精品| 午夜激情亚洲| jizzjizz日本免费视频| 美女视频黄频a免费| 亚洲精品一区国产| 曰韩中文字幕| 亚洲国产成人精品无码区在线秒播 | 午夜视频在线播放一三| 爽插| 熟女少妇丰满一区二区| a∨在线视频播放| 无码av最新高清无码专区| 免费黄色资源| 成人深夜在线| 90岁老太婆乱淫| 亚洲一区二区三区精品视频| 欧洲女人牲交视频免费| 久久综合久久88中字幕文| 亚洲欧洲日本在线| 成人深夜视频| xxxx在线观看视频| 欧美在线一级| 久久久亚洲天堂| 色www精品视频在线观看| 一区二区三区视频在线看| 99er热精品视频| 国产日产欧产美韩系列麻豆| www.在线国产| 97久久超碰成人精品网站| 亚洲春色成人| 国内毛片毛片毛片毛片毛片| av在线播放器| 免费看日批| 日本精品一二区| 国产精品一级| 粉嫩av久久一区二区三区小说 | 黄色网址你懂的| 亚洲成人黄色网| a级特黄的片子| 色婷婷噜噜久久国产精品12p| 久久狼人天堂| 经典三级伦理另类基地| 欧美大浪妇猛交饥渴大叫 | 香蕉影音| 男人天堂成人网| 国产成a人片在线观看视频| 视频分类 国内精品| 亚裔大战黑人老外av| 亚洲成人aaa| 国产精品美女久久久久久麻豆 | av免费福利| 又色又爽又黄又无遮挡的网站| 欧亚一级片| 亚洲小说春色综合另类| 国产精品国产三级国产av剧情| 成人动漫h在线观看| 狠狠色丁香婷婷综合最新地址| 潘金莲4级淫片aaaa| 麻豆视频一区二区| 天天躁日日躁xxxxaaaa| 成人三级a做爰视频哪里看| 亚洲精品无码久久久久yw| 男女啪啪抽搐高潮动态图| 91黄色免费网站| 中文人妻无码一区二区三区在线| 美女无遮挡免费视频网站| 国产亚洲精品日韩在线tv黄| 亚洲中文字幕久久精品无码2021| 天天干天天添| 噜噜噜噜狠狠狠7777视频| 国产香蕉9| 中无码人妻丰满熟妇啪啪| 成人日韩精品| 亚洲午夜国产精品无码| 亚洲国产精品久久久久| 精品小视频在线观看| 欧美三日本三级少妇三2023| 亚洲精品乱码久久观看网| 国产成人亚洲精品无码av大片 | 精品国产一区二区三区av爱情岛| 青青草99热| 少妇做爰α片免费视频网站| 韩国成人免费视频| 一本大道在线无码一区| 香蕉久久一区二区三区| 被公侵犯中文字幕在线观看| 靠逼网站在线观看| 91官网入口| 久久99精品久久久久久吃药 | 996热re视频精品视频这里| 日韩精品极品视频| 免费一级一片| 成人亚洲欧美成αⅴ人在线观看| 欧美色偷偷| 国产又粗又大又爽视频| 国产精品沙发午睡系列990531| 91天堂视频| 中国大陆一级片| 日美女逼逼| 67194成在线观看免费| 中文字幕乱妇无码av在线| 日韩三级av在线| 欧美另类一区| 小视频在线观看| 亚洲综合无码精品一区二区三区| 东京热一区二区三区无码视频| 三级网站在线播放| 中文字幕一区二区三区四区不卡| 欧美日韩高清免费| 精品久| 国产91成人| 日本人又黄又爽又大又色 | 影音先锋中文字幕人妻| 性一交一乱一伦a片| 性生大片免费观看668| 欧美黄网在线观看| 毛片88| 曰本无码人妻丰满熟妇啪啪| 亚洲色图在线观看视频| 又大又黄又爽视频一区二区| 六月色婷婷| av网址免费在线观看| 亚洲性久久久| 国产露脸老熟高潮在线| 看一级黄色| 亚洲精品久久久蜜夜影视| 色爱av综合网站| 49vv看片免费| 4438xx亚洲最大五色丁香一| 女人解开奶罩喂男人吃奶| a∨色狠狠一区二区三区| 亚洲第一极品精品无码| 热re99久久精品国99热| 久久免费黄色| 真实的国产乱xxxx| 中文无码高潮到痉挛在线视频| 手机在线免费看av| 男人一边吃奶一边做爰免费视频 | 国产日产精品一区二区三区四区介绍| 欧美国产日韩在线视频| 亚洲第一无码专区天堂| 爆操少妇| 亚洲色成人网站www永久小说| 国产无线一二三四区手机| 亚洲一区二区高清| 97影视传媒| 成人亚洲一区二区| 美日韩在线| 无码少妇精品一区二区免费| 国产精品99久久久久| 亚洲大乳av成人天堂精品| 人妻少妇精品视频三区二区一区| 视频免费1区二区三区| 日韩成人片| 成人免费一级| 欧美激情中文字幕| 日日摸日日碰夜夜爽亚洲| 亚洲成av人片在线观看天堂无| 久热国产精品视频| 色欲香天天综合网站| 伊人精品无码av一区二区三区| 国产精品多p对白交换绿帽| 五月天色婷婷综合| 极品少妇xxxx精品少妇| av动漫大尺度在线| 国内精品久久久久久不卡影院| 91视频地址| 亚洲国产日韩在线人高清| 免费一二区| 真实国产老熟女无套中出| 日韩免费毛片| 国产精品va无码免费麻豆| 一女两夫做爰3p高h文| 国产无套粉嫩白浆| 情侣激情18内射骚话国产| 无毒的av网站| 欧美男女视频| 青青草福利视频| 高h七仙女辣黄h| 日本在线一级片| 欧美日韩国产中文高清视频| 潘金莲性生交大片免费看图片| 成人一二三区| 色呦呦在线播放| xx69国产| 国产精品尤物yw在线观看 | 自拍偷拍亚洲欧洲| 网站av| 亚洲综合av永久无码精品一区二区 | 欧美大片免费在线观看| 成人三级k8经典网| 欧美成人午夜免费影院手机在线看| 黄色成人在线观看| 黄色视屏在线免费观看| 色欲av无码无在线观看| 亚洲日韩男人网在线| 久操五月天| 国产又黄又大视频| 亚洲色啦啦狠狠网站| 国内精品伊人久久久久av影院| 国产最新av在线播放不卡| 久久久亚洲国产美女国产盗摄| 欧美综合自拍亚洲综合图片区| 欧美成人看片一区二区三区尤物| 久久无码高潮喷水抽搐| 久久国产成人免费网站777| 成人亚洲精品久久久久| 国产九色视频| 300部国产真实乱| 激情戏网站| 免费无码a片一区二三区| 日韩a视频| 91蝌蚪少妇偷拍| 黄色网在线| 亚洲成人精品在线观看| 国产精品v欧美精品| 好看的91视频| 欧美亚洲日本高清不卡| 久草资源站| 性欧美激情aa片在线播放| av无限看| 色涩久久| 三级国产网站| 丝袜国偷自产中文字幕| 性高潮久久久久久久久| 97caoav| 调教丰满的已婚少妇在线观看| 97在线观看视频免费| 无尽夜久久久久久久久久| 国产youjizz| 国产女s调教男m免费网站| 国产极品91| 97人摸人人澡人人人超一碰| 国内自拍视频在线观看| 日韩一级片网站| a√毛片| 国产情侣在线播放| 日本国产成人国产在线播放| 韩国美女主播娇喘乳奶摇| 无码中出人妻中文字幕av| av无码不卡在线观看免费| 黄色片大全| 性户外野战hd| 96福利视频| 欧美日韩丝袜| 亚洲激情婷婷| 国产又黄又爽胸又大免费视频| 精品久久久久久777米琪桃花 | 人妻熟妇乱又伦精品视频app| 国产精品自拍在线观看| 免费入口在线观看| 久久久久成人片免费观看r| 超碰97自拍| 色玖玖| 看成年全黄大色黄大片| 男女真人后进式猛烈动态图视频| 一区二区视频观看| xxxxxx国产| 久久视频在线| 一本到加勒比系列在线| 黄色精品一区二区| 在线免费看黄色片| 精品国产影院| 久久99久久99久久综合| 久久久久av无码免费网| 99久久国产综合精品女图图等你| 亚洲在线观看免费| 日本精品在线看| 人人干夜夜操| 亚洲视频欧美视频| 2019国产精品青青草原| 久青草国产视频| 亚洲欧美一区二区三区久久| 国产精品一区一区| 日本护士被弄高潮视频| 四虎4545www精品视频| 国内精品人妻久久毛片app| 蜜桃视频成人专区在线观看| 一级黄色av| 老司机午夜在线| 中文字幕无码精品亚洲资源网| 黑人巨大精品欧美一区二区,| 精品国产一二三区| 麻豆日韩| 日本公与丰满熄理论在线播放 | 韩国av一区二区三区| 无码熟妇αⅴ人妻又粗又大| 久热青草| 日本午夜免费| 黄色免费av| 51午夜精品免费视频| 不卡成人| 久久亚洲色www成人男男| 亚洲欧美日韩愉拍自拍| 激情欧美日韩| 男人的天堂一级片| 日日爱网站| 四虎在线视频| 尤物av无码国产在线观看| av免费提供| 亚洲伦理自拍| 亚洲欧洲日本在线| 国产精品自在线拍国产| 日本国产网站| 日韩欧美精品有码在线洗濯屋| 欧产日产国产蜜网站| 国产性自拍| 欧美a在线| 亚洲另类中文字幕| 国产精品久久久久久亚洲色| 婷婷中文| 婷婷丁香国产| 自拍三级| 男女又爽又黄激情免费视频大| 国产毛片a级| 国产精品一区二区三区四区五区| 久久特级毛片| 中国黄色片视频| 国产乱轮视频| 国产欧美在线亚洲一区| 国产日韩第一页| 亚洲欧美成aⅴ人在线观看| 午夜福利理论片在线观看播放| 一级特黄bbbbb免费观看| 精品一区免费观看| 国产精品久久久久久欧美 | 国产成人精品视频| 亚洲精品视频一区二区| 国产精品成人自拍| av在线免播放器| 精品成人在线视频| 亚洲区久久| 2019最新中文字幕在线观看| 亚洲国产成人欧美在线观看| 麻豆网| 亚洲人成人一区二区在线观看| 99久久国产综合精品女| 亚洲综合一二三| 久久精品人妻无码一区二区三区| 日本欧美三级| 午夜精品一区二区三区在线视 | 欧日韩一区二区三区| 欧美自拍偷拍第一页| 三级黄色免费网站| 亚洲高清无吗| 一区二区三区乱码在线 | 中文| 亚洲春色综合另类网| 亚洲国产亚综合在线区| 国产高潮视频在线观看| 亚洲不卡一卡2卡三卡4卡5卡| 欧美大片在线免费观看| 无码h黄肉动漫在线观看999| 欧美在线视频一区| 久久机热这里只有精品| 亚洲国产精品久久久久秋霞小说| 热热热av| 蜜桃日本免费观看mv| 日本黄色毛片| 永久免费精品视频| 亚洲日产aⅴ中文字幕无码| 91成人观看| xxxtv性欧美| 6699嫩草久久久精品影院竹菊| 亚洲欧洲日产国码无码av喷潮| 综合色爱| 福利姬液液酱喷水| 国产亚洲人成网站观看| 欧美伊人影院| 一本一道久久a久久精品| 我看午夜视频| 国产目拍亚洲精品99久久精品| 久久色播| 91黑丝在线观看| 蜜桃av噜噜一区二区三| 日本美女视频网站| 亚洲男人天堂2018av| 色香影视| 少妇被粗大猛进进出出| 亚洲精品久久久久久中文字幕| 成年女人黄网站色视频免费97 | 国产人人看| 少妇无套内谢免费视频| 精品无码av一区二区三区| 亚洲成人看片| 久久久夜色精品| 久久久99国产精品免费| 性欧美日韩| 亚洲综合图区| 亚洲中文字幕久久精品无码a| 亚洲一区小说| 国产999精品成人网站| 果冻传媒18禁免费视频| 色综合影视| 9久久精品| 68日本xxxxxxxxx59人| 黄色国产在线| 成人欧美日韩| 亚洲人成网站免费播放| 国产精品熟女在线视频| 久久久精品久久久| 欧美一级黄色大片| 久久国产精品_国产精品| 国内外精品激情刺激在线| 精产国品一二三产品蜜桃| 国语自产拍在线观看对白| 天天射天天干天天插| 成人性生交视频免费观看| 一区二区三区在线免费观看视频| 婷婷开心色四房播播| 超碰免费公开| 在线观看911视频| 91国内精品久久| 高潮毛片又色又爽免费| 成人av一区| 狠狠婷| 熟女少妇色综合图区| 麻豆国产91在线播放| 国产又粗又猛又爽又黄无遮挡| 成人午夜精品无码一区二区三区| 91人人揉日日捏人人看| 免费国产人成网站x8x8| www.xxx亚洲| 亚洲国产初高中生女av| 亚洲国产欧洲综合997久久| 黄色三级国产| 亚洲中文字幕无码一久久区| 日屁视频| 国产色频| 动漫av在线免费观看| 性色xxxxhd| 日本小视频网站| 欧美成人久久久免费播放| 亚洲影院中文字幕| 精品国产自在精品国产| 深夜影院在线观看| 野花社区视频在线观看| 特黄aaaaaa私密按摩| 99久久99久久| 蜜臀久久99精品久久久无需会员| 老熟妇乱子伦系列视频| 少妇久久久久久久| 欧美高清性xxxxhdvideos| 在线免费观看a视频| 国产熟睡乱子伦视频在线播放| 在线点播亚洲日韩国产欧美| 肉色欧美久久久久久久免费看| 国产午夜亚洲精品aⅴ| 国产亚洲精品无码专区| 精品国产乱码久久久久久乱码| 成年人视频在线观看免费| 97夜夜操| 一本大道大臿蕉无码视频| www欧美亚洲| aaa一区二区三区| 国产无人区码熟妇毛片多| 黄色激情视频网站| 免费视频成人片在线观看| 成人免费视频播放| 99热视| 久久久久久成人| 老局长的粗大高h| bt天堂av| 国产r级在线| 四色米奇777狠狠狠me| 少妇与和尚h乱ⅹh| 沈阳45老熟女高潮喷水亮点| 国产农村妇女毛片精品久久麻豆| 日韩av无码一区二区三区| 久久久极品| 苍井空一区二区波多野结衣av| 午夜丰满少妇性开放视频| 天天碰天天碰| 无码高潮爽到爆的喷水视频app| 欧美丰满熟妇bbbbbb百度| av免费无码天堂在线| 69国产成人精品午夜福中文| 免费无码av一区二区三区| juliaann风流的主妇hd| 日韩黄色短片| av黄色毛片| 午夜 国产| 在线岛国片免费无码av| 在线播放中文字幕| 欧美裸体xxxx极品| 亚洲精品久久久艾草网| 小毛片在线观看| 欧美日韩色片| 超碰伦理| 草的我好爽| 国产区在线| 欧美精品在线播放| 最新亚洲国产手机在线| 干美女少妇| 老妇肥熟凸凹丰满刺激小说| 免费在线日本| 国产成人福利在线| 亚洲黄色免费| av在线激情| 在线播放国产麻豆va剧情| 51精品免费视频国产专区| 日本高清一区二区三| 久久理伦| 精品免费看国产一区二区| 老熟妇性老熟妇性色| www.好了av.com| 国产91页| 国产麻传媒精品国产av| 91欧美成人| 夜夜爽8888天天躁夜夜躁狠狠| 亚洲天堂av网| 91在线一区二区| 亚洲成av人最新无码不卡短片| 欧州色网| 欧美日韩国产图片| 在线视频国产网址你懂的| 韩国毛片在线| 依人在线观看| 夜夜嗨av一区二区三区| 成人无码在线视频网站| 国产亚洲视频在线观看| 亚洲淫| 日韩人妻精品无码一区二区三区| 无码h肉男男在线观看免费| av精选| 欧美天天搞| 婷婷五月综合国产激情| 国产亚洲欧美日韩俺去了| 91精品视频在线免费观看| 久久中文字幕一区二区三区| 亚洲免费av网| 成人片在线看| 亚洲一区欧美一区| 男女做激情爱呻吟口述全过程| 欧美a级在线观看| 免费a级毛片视频| 成年人看的网站| 亚洲精品91| 三级视频网站在线观看| 精品国产自在久久现线拍| 三级在线网址| 欧美色图网址| 国产伊人自拍| 一区二区三区国产在线| 狠狠色噜噜狠狠狠狠97首创麻豆| 国产精品成久久久久三级6二k| 国产精品100| 亚洲色老汉av无码专区最| 亚洲成色最大综合在线| 舒淇三级露全乳视频在| 国产一区二区三区四区精华| 国产又粗又爽又猛又大的动漫片| 69亚洲乱人伦| 国产精品久久久久久69| 日本色偷偷| 午夜久久乐| 国产日韩欧美激情| 欧美久久伊人| 欧美激情h| 亚洲视屏| 性色欲情网站| av在线免费观看不卡| 人人爽人人射| 五月婷影院| 中国精品无码免费专区午夜| 风韵丰满熟妇啪啪区老熟熟女| 亚洲ⅴ国产v天堂a无码二区| 天海翼一区二区三区| 成人gav| 99国产精品| 精品亚洲天堂| 天堂av观看| 国产女人18水真多18精品一级做| 激情播播网| 亚洲人成国产精品无码果冻| 国产黄网永久免费视频大全| 免费在线视频一区| 免费看成人毛片无码视频| 18成人免费观看网站| 91社区在线播放| 看曰本女人大战黑人视频| 亚洲午夜无码av毛片久久| 99精品欧美一区二区三区| 香蕉视频911| 丝袜av网站| 色av综合| 国产精品蜜| 亚洲色欲或者高潮影院| aaa黄色| 国产啪精品视频网站免费| 国产午夜三级一区二区三| 精品一区二区三区视频| 亚洲欧美va天堂人熟伦| 伊人网在线视频观看| 人人爱夜夜爽日日做蜜桃| 午夜看片网站| 97成人资源站| aaa a特级黄| 免费无码av片在线观看网站| av播播| 婷婷丁香视频| 91丝袜放荡丝袜脚交| 中文字幕永久在线| 少妇激情一区二区三区视频| 国产精品夜色一区二区三区| 国产成人久久综合一区| 校花高潮抽搐冒白浆视频| 亚洲美女在线观看| 国产精品s| 中文国产成人精品久久app| 51午夜精品免费视频| 青青草原综合网| 成人免费午夜| 久久久久av综合网成人| 色偷偷激情日本亚洲一区二区| 国内精品偷拍| 亚洲伊人网站| 国内精品九九久久久精品| 91麻豆精品国产午夜天堂| 亚洲久热无码中文字幕人妖| 国产亚洲精品一区二区三区| 国产手机av| 2021亚洲爆乳无码专区| 日韩视频一区在线观看| 国产女人18毛片水18精| 欧美不卡一区| 亚洲中文字幕高清有码在线| av美国| 亚洲欧洲综合av| 91蝌蚪网| 国产激情综合在线看| 国产91精品激烈高潮白浆| 日本成人在线免费观看| 欧美极品少妇做受| 中文字幕国产在线| 日韩在线免费观看视频| 国产精品无码久久av不卡| 综合久久综合久久88色鬼| 日韩一中文字幕| 精品国产一区二区三区四区vr| 日本少妇裸体做爰高潮片 | 色偷偷色噜噜狠狠网站久久| 亚洲综合网在线观看| 成人免费看片在线观看| 国产精品爽爽久久久久久豆腐| 99色在线观看| 天天看黄色片| 后进极品美女白嫩翘臀| 国产精品av一区二区三区不卡蜜| 国产xxxx搡xxxxx搡麻豆| 久久久久久午夜| 二级特黄绝大片免费视频大片 | 久久久噜噜噜久久熟女aa片| 亚洲欧洲精品mv免费看| 午夜精品一区二区三区aa毛片| 91丨porny丨九色| 激情三级在线| 在线视频国产制服丝袜| av乱码av免费aⅴ成人| 免费观看国产小粉嫩喷水| 精人妻无码一区二区三区| 日韩视频一区在线观看| 国产成人无码短视频| 性——交——性——乱免费的| 亚洲中文字幕无码av正片| 亚洲欧美另类国产| 公妇乱淫3| 少妇超碰| 久久精品九九亚洲精品| 高清不卡一区| 四川话毛片少妇免费看| 久久密桃| 中国女人内射6xxxxx| 污网站大全免费| 国产主播精品| 亚洲一卡二卡三卡四卡在线看| 亚色中文网| 国产乱弄免费视频| 人妻丝袜av中文系列先锋影音| 日韩中文字幕一区二区| 18涩涩午夜精品www| 亚洲日韩色欲色欲com| 国产一区影院| 无码人妻一区二区三区麻豆| 国产人免费人成免费视频| 亚洲日韩乱码中文字幕| 国产干b| 2021国产精品午夜久久| 精品久久久久久久久久久久久久久久| 亚洲国产精品综合久久网络| 97影院理论片手机在线观看| 哪里可以看免费毛片| 97视频精品| 麻豆网神马久久人鬼片| 人妻熟妇乱又伦精品视频中文字幕| 99蜜桃臀精品视频在线观看| 97久久久久人妻精品区一| 亚洲爆乳中文字幕无码专区网站| 久久天堂av综合合色| 国产999精品成人网站| aaa级片| 性少妇xxxxx| 成人免费视频国产免费网站| 成人三级在线播放| 日韩人妻无码免费视频一区二区三区| 国产99久9在线视频 | 传媒| 午夜视频www| 亚洲精品午夜久久久| 国产jk白丝av在线播放 | 最新的中文字幕| 欧美精品在线视频| 四虎色网| av高清| 国产精品国产精品国产专区蜜臀ah| 男女啪啪软件| 亚洲欧美日韩成人一区在线| 欧美一级夜夜爽| 国产精品玖玖玖在线资源| 最新国产毛片| 亚洲欧美日韩v在线播放| 老司机在线免费视频| 亚洲天堂五月| 99热中文| 亚洲视频欧美视频| 日韩乱码人妻无码中文视频| jizz成熟丰满日本少妇| 国产视频一区二区不卡| 欧美日本色| 人妻熟女一区二区aⅴ向井蓝| 91av九色| 少妇高潮惨叫喷水正在播放| 成人福利视频| 性视频一区二区三区| 国产极品91| videos麻豆| 日韩精品久久久| 精品免费看| 天天色视频| 天堂在/线资源中文在线bt| 国产精品入口免费| 亚洲第一狼人伊人av| 黄色第一网站| 国产乱子伦视频大全| 狠狠色综合激情丁香五月| 久久视精品| 黄色网址免费| 亚洲国产精品高清久久久| 少妇4p| 午夜激情免费视频| 波多野结衣一区二区| 国产精品拍国产拍拍偷| 永久免费看毛片| 丰满放荡岳乱妇69www| 亚洲国产不卡| 91一区视频| 九一精品在线| 大肉大捧一进一出好爽app| 激情av网站| 中文国产成人精品久久久| 久草a视频| 玖草影院| 白嫩丰满少妇xxxxx性张津瑜 | 5678少妇影院| 和嫩模做爰在线播放| 亚洲国产精品一区二区成人片国内| 国产亚洲精品久久久网站好莱| 国产精品久久国产精品| 在线观看黄网| 亚洲性bbbbbbbbbbbb| 亚洲欧美日韩成人| 九九久久免费视频| 永久av| 国产公妇伦在线观看| 色综合久久精品亚洲国产| 欧美国产三级| 亚洲国产一区二区精品| 国产免费黄色小视频| 欧美色综合天天久久综合精品| 伊人久久久大香线蕉综合直播| 国产亚洲精品久久77777| 忘忧草社区在线www| 超碰中文在线| 亚洲欧美一二三| 国产真人做爰毛片视频直播| 一区二区三区麻豆| 精品亚洲国产成人av在线| 亚洲精品第一国产综合境外资源 | 播放灌醉水嫩大学生国内精品| 亚洲精品一线二线三线无人区| www久久久| av自拍一区| 国产69久久| 黑人巨大av| 九九九在线观看| 亚洲中文有码字幕日本| 亚洲日本va午夜中文字幕久久| 亚洲一区成人在线| mm1313亚洲精品| 欧美日本成人| 久久久激情网| 超碰免费成人| 天天爽夜夜爽人人爽曰| 中国女人内谢69xxxx免费视频| 国产成人亚洲在线观看| 夜夜操影视| 免费久久片| 精品日韩中文字幕| 五月婷婷一区二区三区| 国产亚洲精品俞拍视频| 国产黄色三级| 国产精品午夜久久| 亚洲第一中文字幕| 国产九九av| 性xxx欧美老妇5060.70| 色咪咪网站| 免费手机av| 亚洲另类欧美在线电影| 久久久久久午夜成人影院 | 国产自产一区二区| 欧美日韩一区二区三区四区在线观看| 51精品视频在线视频观看| 粗大的内捧猛烈进出视频| 狠狠色狠狠色综合久久一| 久久久久久久久久一级| 香蕉网在线视频| 亚洲乱妇老熟女爽到高潮的片| 日韩成人大屁股内射喷水| 国产xxxx69免费大片| 99re热视频这里只精品| 无码国产精品一区二区av| 国产亚洲综合av| 日韩精品久久无码中文字幕| 国产女主播户外勾搭野战| 欧美最猛性xxxx| 亚洲最大在线视频| 2021国产精品国产精华| 欧美三级一区| 国产精品免费在线播放| 毛片毛片毛片毛片毛片毛片毛片毛片 | 久久久九九| 六月丁香婷婷综合| 久久久1| 欧美亚洲视频一区| 国产亚洲精品一区二三区| 成人网站免费看黄a站视频| 91在线观看视频| 狠狠色丁香九九婷婷综合| 日本欧美一级片| 91av成人| 农村少妇无套内谢粗又长| 欧美性做爰猛烈叫床潮| 亚日韩av| 女人与公拘交酡全过程| 亚洲w码欧洲s码免费| 狠狠撸在线| 日韩欧美亚洲国产精品字幕久久久| 亚洲人成亚洲人成在线观看| 另类重口aaa| 欧美一级二级在线观看| 男女真人国产牲交a做片野外| 欧美激性欧美激情在线| 50岁熟妇的呻吟声对白| 97爱视频| 色无码av在线播放| 亚洲a在线播放| 一级淫片在线观看| 狂野欧美性猛交xxxxx视频| 免费国产在线精品一区二区三区| 亚日韩av| 看黄色一级片| 国产成人精品视觉盛宴| 六姐妹免费在线观看| 日本做爰吃奶全过程免| 成本人片无码中文字幕免费| 亚洲图片另类图片激情动图 | 超碰97av| 性欧美熟妇videofreesex| 午夜一区欧美二区高清三区| 国产精品熟女在线视频| 99久久国产综合精品女| jzzijzzij亚洲成熟少妇| 成人免费毛片片v| 中文字幕av伊人av无码av| 国产欧美va欧美va香蕉在线| 国产小呦泬泬99精品| 少妇淫交裸体视频| 久久五| 日本免费色| 中文字幕xxx| 神马久久久久久| 懂色av噜噜一区二区三区av88| 国产97视频人人做人人爱| 黑人爱爱视频| 亚洲成a人片77777精品| 寂寞少妇色按摩bd| 亚洲尤物视频| 国产不卡高清| 久久人人爽人人爽人人片dvd | 久久噜噜少妇网站| 久草一级| 久久视频这里只精品99| 精品一区二区免费| 亚洲天堂免费在线| eeuss亚洲精品久久| www.涩涩爱| 亚洲图片中文字幕| 国产精品久久久国产盗摄蜜臀| 岛国视频一区| 一本大道在线一本久道视频| 亚洲精品av无码重口另类| 亚洲国语自产一区第二页| 99视频| 国产伦精品一区二区三区免费观看| 无码任你躁久久久久久| 欧美精品久久天天躁| 成人手机在线观看| 免费在线性爱视频| 九色91popny蝌蚪| www日日干| 免费看三级黄色片| 国产在线视频自拍| 亚洲国产精品日韩专区av| 97视频免费观看2区| 视频在线亚洲| 中文字字幕| 亚洲videos| 国产八十老太另类| 日产精品高潮呻吟av久久| 日本精品高清一区二区| 伊人焦久影院| 双性受惨叫扩张调教虐宫h| 成人高清网站| 国产乱妇乱子在线视频| 性生交大片免费看狂欲| 久久久九九| 国产一级二级三级在线 | 成人亚洲欧美丁香在线观看| 91精品毛片一区二区三区| 胖女人毛片| 乱荡少妇xxhd| 精品久久久久久国产偷窥| 青青草自拍| 97精品久久久| 成人黄色av网址| 色婷婷基地| 九色porny丨国产首页在线| 色诱久久av| 5566成人精品视频免费| 黄频在线免费观看| 玖草视频在线观看| 九九伊在人线| 亚洲91在线| 午夜丰满寂寞少妇精品| 久久天堂av综合合色| 羞羞视频网址| 免费在线毛片| 99国产精品99| 久热精品在线观看视频| 日本孕妇潮喷高潮视频| 越南毛茸茸的少妇| 在线一级片| 欧美日韩国产成人高清视频| eeuss秋霞成人影院| 亚洲国产成人av| 一级日韩毛片| 国产日韩久久久久| 偷偷色噜狠狠狠狠的777米奇| 含羞草91大少妇| 成人午夜无码专区性视频性视频| av男人的天堂网| 影音先锋久久久久av综合网成人 | 好吊色综合| 色欲综合视频天天天| 久久久久久久久免费| yellow免费在线观看| 国产精品麻花传媒二三区别| av在线天堂av无码舔b| 久久天天躁夜夜躁狠狠85台湾| 国产毛片视频| 欧美日韩天堂| 日b视频免费观看| 国产成人精品微拍视频网址 | 午夜成人理论福利片| 欧美一级性视频| 国产av综合影院| 欧美激情16p| 国产成人网| 久久亚洲伊人| 白嫩少妇xxxxx性hd美图| 国产91亚洲| 精品少妇一区二区| 成年人视频在线观看免费| 日韩一卡二卡| 久久久夜色精品| 亚洲高清国产拍精品闺蜜合租 | 爱av导航| 国产九九99久久99大香伊| 激情综合色五月六月婷婷| 欧美熟老妇乱| 日韩一卡2卡3卡4卡乱码网站导航| 国产手机在线无码播放视频| 亚洲综合第一页| 非洲黄色一级片| 亚洲一区二区色一琪琪| 东方aⅴ免费观看久久av| 操操操免费视频| 国产淫片av片久久久久久| 成年人av在线播放| 伊人久久大香线蕉综合网| 天天躁日日躁狠狠躁超碰97| 四虎在线看片| 亚洲欧美另类一区| 亚洲精品国产第一综合99久久 | jizz性欧美5| 亚洲精品无码久久久久| 久久人妻av中文字幕| 手机在线一区二区三区| 永久黄网站色视频免费无下载| 少妇性l交大片| 午夜丁香网| 色与欲影视天天看综合网| 99精品国产在热久久婷婷| 欧美日韩精品无码一本二本三本色| 国产丝袜一区视频在线观看| av在线播放一区| 亚洲国产婷婷| 亚洲va中文在线播放| 亚洲国产成人av国产自| 小sao货揉揉你的奶真大电影| 伊人焦久影院| 亚洲va在线va天堂xxxx中文 | 久草黄色网| 欧美狠狠入鲁的视频| 好吊色视频在线观看| 成人性生活视频在线播放| 成人18aa黄漫免费观看| 久久一本日日摸夜夜添| 99色网| 国产精选av| 特黄一级片| 亚洲精品20p| 在线观看黄色片网站| 中文字幕一本久久综合| 老熟妇仑乱视频一区二区| 欧美日韩v| 久久精品国产99国产精品| 国产精品女同一区二区久久夜| 91青草视频| 久久久久逼| 成人午夜免费在线| 8x8ⅹ国产精品8x红人影库| 97影视传媒| 色偷偷中文字幕综合久久| 国产成人啪精品视频网站| 午夜黄色福利| 天天综合射| 婷婷中文字幕| 国产成人亚洲精品狼色在线| 午夜福利伦伦电影理论片在线观看| 911国产| 日韩免费在线视频观看| 2021国产精品视频| 找国产毛片看| 亚洲激情专区| 天天做天天爱夜夜爽毛片l| 久久99精品国产99久久6| 小莹浴室激情2| 夜夜看| 欧美成人影院亚洲综合图| 日本www网站色情乱码| 蜜柚av久久久久久久| 日本在线免费观看视频| 精品国产小视频在线观看| 热re99久久精品国99热| 97青青草| 国产成人精品久久| 老牛嫩草一区二区三区消防| 亚洲最大日夜无码中文字幕| 久久精品国产72国产精| 777午夜精品免费观看| 91免费高清视频| 欧美你懂得| 亚洲a片国产av一区无码| 欧美日韩一二三| 国产又大又粗又猛又爽的视频| 国产麻豆剧果冻传媒兄妹蕉谈| 六十路高龄老熟女m| 色爽交| 日韩av片无码一区二区三区不卡| 亚洲免费黄色片| 国产一卡2卡3卡四卡精品| 中文无码精品a∨在线观看不卡| 少妇人妻挤奶水中文视频毛片 | 三级av网| 久久精品国产再热青青青 | 天堂中文av| 99色热| 99久久免费看少妇高潮a片| 17婷婷久久www| 四季久久免费一区二区三区四区| 亚洲精品久久久久久成人| 夜夜国产亚洲视频香蕉| 777米奇影院狠狠色| 亚洲国产情侣| 99pao在线视频国产| 66m66成人摸人视频| 香蕉视频在线播放| 大学生疯狂高潮呻吟免费视频| av国产一区| 超碰最新在线| 国产成人综合亚洲亚洲国产第一页| 七七久久| 无收费看污网站| 99国产精品欧美一区二区三区| 一级真人毛片| 97在线观看视频| 免费人成在线| 久久精品国产77777蜜臀| 美女100%挤奶水视频吃胸| 手机在线看片国产| 中国女人真人一级毛片| 色多多福利网站免费破解| 哪里有毛片看| 一级片亚洲| 亚洲福利网址| 一本久道综合色婷婷五月| 日韩性色| 黄色大片儿.| 天堂福利在线| 激情av无码后入| 久久婷婷大香萑太香蕉av人| 国产麻豆md传媒视频| 国产在线观看一区二区三区| 亚洲国产成人久久三区| 刺激性视频黄页| 久久久久9| 亚洲另类伦春色综合| 激情久久av一区av二区av三区| 香蕉久久夜色精品国产更新时间| 日韩av片在线看| 日本少妇激三级做爰在线| 无码少妇一区二区三区免费| 一级做a爰片久久毛片| 九九99精品视频| 久久成人小视频| 亚洲 自拍 色综合图区av网站| 国产午夜福利不卡在线秋霞秋霞| 婷婷五月日韩av永久免费| 天天视频黄色| 五月色婷婷俺来也在线观看| 粉嫩av一区二区三区入口| 少妇搡bbbb搡bbb搡澳门| 韩国性猛交╳xxx乱大交| 一区二区午夜| 强奷乱码中文字幕熟女一| 欧美一区二区三区成人久久片| 日本一本一区二区免费播放| 18女下面流水不遮图| 国产xxxx做受性欧美88| 免费看黄色网址| 好色先生视频污| 日日干狠狠干| 免费人成网ww555kkk在线| 91网站在线看| 色婷婷久久久| 中日韩在线观看视频| 久久久视频2019午夜福利| 91久久香蕉国产日韩欧美9色| 最新色站| 国产一区丝袜在线播放| 天堂av8在线| 人妻夜夜爽天天爽一区二区| 亚欧av在线| 久久久久久亚洲综合影院| 在线精品亚洲观看不卡欧| 欧美123区| 日本太爽了受不了xxx| 国产精品.xx视频.xxtv| 国产第5页| 天堂av中文字幕| 欧美一区二区三区视频| 美女av在线播放| 日本中文不卡| 婚后打屁股高h1v1调教| 丁香婷婷色| 国产黄大片在线观看| 亚洲精品无码午夜福利理论片| 久久久夜| 国产又爽又黄又爽又刺激| 欧美性视频在线播放| 男女吻胸做爰摸下身| 果冻传媒18禁免费视频| 久久精品99久久香蕉国产| 欧美丰满熟妇bbbbbb| 久草热久草热线频97精品| 中国熟妇露脸videos| 蜜桃一区二区三区| 91综合视频| 国产高清色| 女人脱了内裤趴开腿让男躁| 国产黄色在线| 最近中文字幕在线中文视频| 免费草逼视频| 久久不见久久见免费影院www日本| 日本aaa级片| 国产亚洲精久久久久久无码77777| 亚洲天堂中文字幕在线观看| 国产精品久久久久久久久免费相片| 国产黄色片视频| xxxx性xx另类ⅹ亚洲hd| 久久www免费人成—看片| 国产xxx视频| 亚洲成a人片在线观看无码不卡| 午夜免费网| 国产亚洲在线观看| 国产成人小说视频在线观看| 色资源av中文无码先锋| 国产午夜精品一区| 婷婷深爱网| 精品视频99| 亚洲—本道中文字幕东京热| 国产精品一| 男人扒开女人腿桶到爽免费| 黄色一级片在线播放| 一二级毛片| 福利网址在线| 国产一级免费片| 香蕉视频免费在线看| 久久人妻公开中文字幕| 在线成人播放| 香蕉视频传媒| 久草久草| 亚洲国产精品久久久天堂麻豆宅男| 91操碰| 国产日韩免费视频| 九九影院理论片私人影院| 亚洲国产精品一区二区制服| 亚洲在线观看免费| 国产91亚洲| 国模私拍av| 国产黄a三级三级看三级| 国产精品亚洲欧美日韩在线观看| 久久视了| 日日噜噜夜夜狠狠va视频| 找av导航| 久草新免费| 99久久超碰中文字幕伊人| 黄色片大全| 久久人妻无码aⅴ毛片a片直播| 熟妇人妻av无码一区二区视频| 玖玖在线观看视频| 国产成人一区二区视频免费| 中国女人高潮hd| 围产精品久久久久久久| 国产美女的第一次好痛在线看| 欧美最骚最疯日b视频观看| 人人妻人人澡人人爽欧美一区九九 | 日韩视频 中文字幕| 做性久久久久久| 欧美日韩免费做爰视频| 精品精品国产欧美在线| 成人午夜精品| 国产成人亚洲综合图区| 在线 色| 看曰本女人大战黑人视频| 97亚洲色欲色欲综合网| 天天爱天天做久久狼狼| 国产在观线免费观看久久| 波多野结衣爽到高潮大喷| 人人草人人爱| 国产成人午夜视频| 国产毛片毛片精品天天看软件| 91精品国产92久久久久| 国产尻逼视频| 酒店大战丝袜高跟鞋人妻 | 国产亚洲精品俞拍视频| 中文在线а天堂中文在线新版| 中国精品毛片| 国产chinese中国xxxx| 黄网站在线免费| 国产传媒在线视频| 美女隐私免费网站| 女女同性女同一区二区三区九色| 国产嘿嘿嘿视频在线观看| 国产成人麻豆亚洲综合精品| 国产资源在线视频| 老熟妇午夜毛片一区二区三区| 午夜天堂av天堂久久久| 风流老熟女一区二区三区| 国产精品国产自线拍免费| 18禁黄网站禁片免费观看不卡| 亚洲人成人一区二区在线观看| 九九热精品视频在线播放| 黄色av国产| 国产97色在线 | 国产| www91麻豆| 丝袜一区二区三区| 九九热精品视频| 99精品欧美一区二区三区综合在线| 日韩中文一区| 蜜桃av色欲a片精品一区| 99热亚洲| 天干夜天天夜天干天2004年| 日本免费在线播放| 少妇熟女久久综合网色欲| 久久精品农村毛片| 中文字幕av日韩精品一区二区| 99re热精品视频| sb少妇高潮二区久久久久| 成人毛片在线| av无码东京热亚洲男人的天堂| 91免费成人| 四虎最新网址在线观看| √天堂资源中文| 爱爱免费视频网站| 日韩一区二区三区视频在线观看| 懂色av一区二区三区在线播放| 老汉av网站| 日韩一区不卡| 羞国产在线拍揄自揄视频| 18禁肉肉无遮挡无码网站| 人人爽人人澡人人高潮| 亚洲精品毛片av一区二区三区| 91avcom| 激情xxxx| 国产夜色视频| 欧美自拍视频| av天堂久久精品影音先锋| 曰曰摸夜夜添夜夜添高潮出水| 男人一边吃奶一边做爰网站| 国产高清在线不卡| 蜜桃少妇av久久久久久久| 国产v在线观看| 九九精品99久久久香蕉| 中国大陆精品视频xxxx| 九九人人| 日韩精品一区二区三区中文不卡| 天堂а√在线资源在线| 中文在线а√在线| 香蕉伊人网| 精品久久久久久无码不卡| 一区二区三区黄色| 超碰97在线看| 国产精品啪| 国产破处av| 五月婷婷一区二区三区| 视频久re精品在线观看| 午夜成人无码片在线观看影院| 日本美女黄视频| 国产av综合影院| 14萝自慰专用网站| 亚洲理论电影在线观看| 2021久久超碰国产精品最新| 成人免费看片39| 国产精品特级毛片一区二区三区| 天天躁夜夜躁天干天干2022| 日韩av麻豆| 少妇又紧又色又爽又黄又刺激| 丁香综合网| 一本之道久久| 国产成人精品亚洲日本语言| 一区二区 在线 | 中国| 欧美人牲交a欧美精区日韩| 成 人色 网 站 欧美大片在线观看| 天堂躁躁人人躁婷婷视频ⅴ| 亚洲一区二区高清| 婷婷激情五月av在线观看| 无码人妻精一区二区三区| 亚洲大尺度无码专区尤物| 欧美性第一页| 久久疯狂做爰流白浆xxxⅹ| 国模无码视频一区二区三区| 国产亚洲产品影市在线产品| 国产免费又黄又爽又色毛| 青青久在线视频| 国产综合色在线精品| 久久精品国产99国产精2020丨| 国产婷婷在线观看| 久久一道本| 亚洲人成网站999久久久综合| 国产精品国产自产拍高清av| 深夜爽爽福利| 91免费大片网站| 久久免费看少妇高潮a| 精品一区二区在线播放| 婷婷久久香蕉五月综合加勒比| 性夜影院爽黄e爽| 特大黑人巨交吊性xxxxhd| 亚洲另类激情专区小说| av理伦片| 欧美一区二区日韩国产| 性高潮网站| 亚洲日产无码中文字幕| 91亚色网站| 三级免费毛片| 秋霞久久久久久一区二区| 国产免费啪嗒啪嗒视频看看| 2022国产精品| 少妇太爽了在线观看免费视频| 国产xxxx做受性欧美88| 97人人澡人人深人人添| 久久综合九色综合欧美就去吻| 最新版天堂资源网在线种子 | 欧美性开放视频| 蜜臀av88| 黄色aaa视频| 91精品国产综合久久四虎久久| 337p日本欧洲亚洲大胆69影院| 日日干夜夜撸| 国产欧美视频一区二区三区 | 国产女人40精品一区毛片视频 | 亚州毛片| 亚洲视频在线观看网址| 中文字幕一线产区和二线| 欧美日韩免费做爰视频| 亚洲综合无码久久精品综合| 亚洲综合免费视频| 色欲av蜜桃一区二区三| 67194国产| 色网站在线播放| av在线黄色| 亚洲精久久| 国产一二三区精品| 免费无码又爽又刺激软件下载直播| 久久国产天堂福利天堂| 精品久久久久久久无码人妻热| 欧美色频| 日韩精品免费一区二区三区四区| 国产网站免费在线观看| 亚洲区在线播放| 久久国产精| 男女猛烈xx00免费视频试看| 一区二区三区麻豆| 亚洲欧美日韩中字视频三区| 亚洲国产区男人本色在线观看| 日韩视频中文字幕精品偷拍| 亚洲人成网77777香蕉| 国产精品久久久久久久久久久久午夜片| 伊人久久精品av一区二区| 秋霞无码一区二区| 人妻少妇久久中文字幕一区二区| 色99色| 一区二区三区午夜| 韩国三级一区| 伊人婷婷色香五月综合缴缴情| 夜夜夜网站| 国产一区二区精品在线| 狼性av| 香蕉网站视频| 国产精品爆乳在线播放| 永久黄网站色视频免费无下载| 极品色av| 极品少妇在线| 久草视频网| 毛片入口| 日韩 另类 综合 自拍 亚洲| 国产黄色一级片视频| 色女人av| 精品国产在天天在线观看| 国产欧美va欧美va香蕉在线观看| 久久精品三级| www激情com| 日韩在线视频观看免费| 国色天香成人网| 草草影院第一页yycc.com| 少妇哺乳期啪啪| 青青青青久久精品国产av| 毛片网站免费在线观看| 久久久久国色av免费看图片| 亚洲激情av在线| 快灬快灬一下爽69xx免费| 亚洲第一大综合区| 99爱在线精品视频免费观看| 国产97在线观看| 在线免费观看av片| 日本a在线免费观看| 蜜臀99久久精品久久久久久软件| 337p粉嫩日本欧洲亚福利| 亚洲精品一区二区精华液| 国产精品国产三级国产av麻豆| 国产91色在线 | 免费| 黄色1级毛片| 欧美性群另类交| 太粗太深了太紧太爽了动态图男男| 精品国际久久久久999波多野| 久久久一本精品99久久精品66| 最新av在线网站| 女模特的呻吟bd| 色天天天综合色天天| 丁香六月久久| 女学生14毛片视频片二毛| 深爱五月综合网| 美女超碰| 免费人成网站在线视频| 亚洲 熟女 久久 国产| _97夜夜澡人人爽人人喊_欧美| 狠狠躁日日躁夜夜躁| 欧美成人免费全部观看国产| 一二三区在线| 美女人妻激情乱人伦| 国产精品一区二区av蜜芽| a在线| 免费黄色毛片视频| 久久九九99| jizz一区| 极速小视频在线播放| 国产亚洲精久久久久久无码| 性色在线视频| 亚洲婷婷一区| 国产高跟黑色丝袜在线| 国产日韩综合一区二区性色av | 成人午夜免费视频| 午夜成人精品福利网站在线观看| 国产又粗又猛又爽| 亚洲偷自拍另类图片二区| 亚洲成人xxx| 日日夜夜草| 四虎成人精品无码永久在线| 中文无码精品a∨在线| 爱爱视频日本| 女女女女bbbbbb毛片在线| 国产露脸精品产三级国产av| 中文字幕乱码日本亚洲一区二区| 制服丝袜在线一区| 91成人xxx| 亚洲国产美女精品久久久久∴| 久久国产精品久久久| 亚色在线观看| 91网站免费视频| 久久精品亚洲日本波多野结衣| 国产精品视频超级碰| 欧美日韩成人网| 欧美v亚洲v综合ⅴ国产v| 无遮挡做爰激吻国产999| 6―13呦精品| 天天看夜夜操| 广州毛片| 激情九月天| 亚洲爱视频| 欧美日韩免费在线| 国产精品久久久久影院嫩草| 亚洲人a成www在线影院| 精品午夜福利1000在线观看| 日本三级日产三级国产三级| 国产无套精品一区二区三区| 日本xxx裸体xxxx偷窥| 欧美三级欧美一级| 一区二区三区久久含羞草| 男女av在线| 欧美xx视频| 久久综合狠狠综合久久激情| 国产一区免费在线| 久久国产精品99久久人人澡| 两个人做羞羞的视频| 欧美乱妇高清无乱码在线观看| 成人资源在线观看| 少妇又紧又色又爽又刺激视频| 亚色91| 女同久久另类99精品国产| 成人性生交大片免费看中文| 成人午夜毛片| 国产精品女人和拘| 中文字幕妇偷乱视频在线观| 野外(巨肉高h)| 国产suv精二区| 成熟丰满中国女人少妇| 日韩精品欧美激情| 亚洲国产精品高清在线第1页 | 亚洲字幕在线观看| 国产又粗又猛又爽又黄| 亚洲精品理论电影在线观看| 四虎影视国产精品永久在线| 91av免费看| 日韩中文字| 日一日射一射| 少妇午夜啪爽嗷嗷叫视频| 久久久www影院人成_免费| 亚洲另类中文字幕| 欧美日韩免费做爰视频| 亚洲免费国产午夜视频| 国产极品在线播放| 国产三级中文字幕| 四虎精品在线| 国产精品久久久久桃色tv| www黄色av| 麻豆tv在线观看| 人人看人人舔| 97精品久久久| 亚洲首页一区任你躁xxxxx| 女人被做到高潮免费视频| www黄色片com| 日本少妇被黑人猛cao| 深爱激情丁香| 97自拍视频在线| 夏目彩春搜索结一88av中出| 精品一区二区三区影院在线午夜| 91丨porny丨尤物| 日本高清在线天码一区播放| 婷婷伊人久久| 在线成人欧美| 国产精品久久久久久久久久iiiii 成人手机在线免费视频 | 国产网红主播精品一区| 国产亚洲色婷婷久久99精品| 性欧美在线视频观看| 特黄aaaaaaaaa毛片免费视频| 一级高清免费毛片| 欧美10p| 蜜桃无码一区二区三区| 女人喂男人奶水做爰视频| 99蜜桃在线观看免费视频网站| 成人午夜毛片| 国产毛片毛片| yy1111111少妇影院免费| 亚洲人成人网色www| 国产97人人超碰caoprom亮点| 777国产偷窥盗摄精品品在线| 午夜dj高清免费观看视频| 97自拍视频在线| www.av在线播放| 噼里啪啦动漫在线观看| 亚洲综合网站精品一区二区| 久久精品国产久精国产一老狼| 99ri在线| 青青艹视频在线| 久久免费视频2| jvid乐乐| 国产成年无码久久久免费| 国产毛茸茸| av免费观看入口| 91亚色视频在线观看| 免费观看的av毛片的网站| 日韩亚洲国产激情一区浪潮av | 大香伊蕉在人线免费视频| 各种含道具高h调教1v1男男| 看成年全黄大色黄大片| 大香伊蕉在人线国产网站首页| 国产一二三精品| 色欲av蜜桃一区二区三| 午夜在线网站| 国产成人精品午夜视频| 国产成人av综合色| 国产偷人激情视频在线观看| 国产免费a∨片在线观看不卡| 国产口爆吞精在线视频2020版| 深夜精品视频| 国产精品538一区二区在线| 中文字幕亚洲乱码熟女一区二区| 2021国产精品成人免费视频| 国产欧美精品一区二区色综合| 日本一卡2卡3卡4卡免费乱码网站| 亚洲熟女乱色综合一区小说| 国产亚洲不卡| 成人在线免费观看网站| 天天干夜夜做| 国产亚洲精品久久一区二区三区| 国产经典毛片| 9色在线视频| 五月天久久久噜噜噜久久| 一本大道香一蕉久| 亚洲天堂8| 99视频精品免视看| 中文有码在线| 人人妻人人a爽人人模夜夜夜| 久久久99精品成人片| 国产精品午夜成人免费观看| 国产精品a级| 成人av一区二区兰花在线播放| 日韩精品无码久久久久久| 亚洲色成人网站www永久男男| 国产在线精品无码不卡手机免费| 麻豆传媒一区二区三区| 久久婷婷色综合| 热玖玖| 黄色日本网站| aaa a特级黄| 18禁肉肉无遮挡无码网站| 久久av不卡| 狠狠欧美| 丰满熟妇偷拍洗澡毛茸茸| 人人玩人人添人人澡超碰 | 91精品久久久久| 免费的av| 无码超乳爆乳中文字幕久久| 成a人v| 国内揄拍国内精品人妻浪潮av | 少妇淫真视频一区二区| 日韩欧美激情兽交| 日韩毛片在线视频x| 亚洲熟妇自偷自拍另欧美| 一级 黄 色 毛片| 欧美老熟妇乱子| 国产午夜小视频| 黄色激情在线观看| 成人免费一区二区三区视频软件| 午夜宅男影院| 青青青国产在线视频在线观看| 97免费公开视频| 第一福利丝瓜av导航| 成人做爰高潮片免费视频美国| 久九九精品免费视频| 日韩精品毛片| 97精品国产| 超碰av在线免费观看| 夜夜嗨国产| 少妇免费看| 国产鲁鲁| 久久嫩草影院免费看| 四虎永久在线精品免费观看网站| 日本护士毛茸茸xx| 91丨国产丨捆绑调教| 国产亚洲欧美在线视频| 四虎永久地址www成人久久| 国产精品妇女一二三区| 黄色大片aa| 豆国产93在线 | 亚洲| 亚洲天堂手机在线| 亚洲最大av无码网站最新| av在线资源网站| 中文在线一区| 成人啪精品视频网站午夜| 国产精品白丝av嫩草影院| 精品久久影院| 一级做人爱c黑人影片| wwwav不卡| 亚洲成在人线av| 久草一区| 夜夜看av| www久久网| 手机av永久免费| 一区二区观看| 波多野结衣大战黑人8k经典| 又色又爽又黄的gif动态图| 亚洲精品伦理熟女国产一区二区| 欧美成人高清在线| 亚洲高清最新av网站| 久久人人爽人人爽人人片| 唯美欧美亚洲| 少妇xxxx| 亚洲成在人线av品善网好看| 国产乱人伦真实精品视频| 天天干夜夜爽| 国产综合色视频| 亚洲国产欧美一区三区成人| 国产视频手机在线观看| 久久国产精品一区二区三区| 做爰xxxⅹ性69免费视频| 制服丝袜亚洲中文综合懂色| 国产高清在线精品二区| 欧美国产精品| 午夜无码性爽快影院6080| 网址你懂的在线| 男人的天堂久久| 国产高清视频| 久久精品中文| 一区二区三区av夏目彩春| 天堂男人网| 人妻国产成人久久av免费高清| 国产国产精品人在线观看| 夜夜爽av福利精品导航| 136av福利视频导航| 精品国产18久久久久久二百| av在线激情| 色avav色av爱avav亚洲色拍| 我和房东少妇激情| 伊人久久大香线蕉精品| 天堂网在线播放| 日韩片在线| 四虎8848精品| 蜜桃中文字幕| 国产偷窥真人视频在线观看| 色成人精品免费视频| 国产欧美精品一区二区在线播放| 91爱视频| 一级做a爰片久久毛片一| 久久久一级黄色片| 亚洲欧美系列| 91www在线观看| 国产伊人网| 一久久久久| 国产一级性生活视频| 538国产精品视频一区二区| 亚洲va在线va天堂xxxx| 黄色正能量网站| 强行挺进熟睡少妇av| 91福利网址| 欧美国产精品一区二区三区| 冲田杏梨在线| 91网址在线播放| 欧美大片在线观看| 日本中文有码| 91精品国产高清一区二区三区蜜臀| 国产午夜鲁丝片av无码免费| 91在线短视频| 免费观看成人| 国产91精品一区二区麻豆网站| 日本丰满少妇裸体自慰| 九个美女露脸撒尿嘘嘘视频| 日日碰狠狠躁久久躁96| 日韩色黄大片| 亚洲精品国产第一综合99久久| 91丨porny丨国产麻豆| 中国理伦片在线| 亚洲色欲综合一区二区三区| 久久久久xxxx| 特级西西444ww大胆高清图片| 人妖一区二区三区| 国产素人在线| 黄色大片91| 伊人婷婷色香五月综合缴缴情| 狠狠躁夜夜躁人人爽天天| 久久久久网| 国产精品视频成人| 97超碰在线资源| 欧美日本中文字幕| 狠狠干2022| 无码视频免费一区二区三区| 摸摸大奶子| 在线观看高清av| 久久av资源| 午夜理论电影在线观看亚洲| 欧洲成人一区二区| 婷婷综合久久中文字幕蜜桃三电影| 寡妇疯狂性猛交| 欧美最黄视频| 欧洲grand老妇人bbw| 亚洲精品欧美| 大陆少妇xxxx做受高清| 亚洲а∨天堂久久精品| 娇小性xxxxx极品娇小小说| 深夜福利一区| 57pao国产一区二区| 狠狠干精品| 国产超碰人人爽人人做人人添| wwwxxx在线播放| 无码人妻av一二区二区三区| 天天躁夜夜躁天干天干2020| 麻豆国产精品久久人妻| 俺来也av| 亚洲精品欧美综合一区二区| 亚洲欧美不卡高清在线| 神马影院午夜伦理片| 久久视频在线观看精品| 日韩欧美在线综合网另类| 香蕉av777xxx色综合一区| 日韩一二在线| 中文在线天堂资源| 亚洲人成毛片在线播放| mm131尤物让人欲罢不能日本| 国产99久60在线视频 | 传媒| 国产成人毛片| 樱花草涩涩www在线播放 | 国产精品玖玖资源站大全| 丰满少妇弄高潮了www| 中文字幕免费无码专区剧情| 夜夜未满十八勿进的爽爽影院| 乱人伦视频中文字幕| 天天国产视频| 久草 在线| 亚洲黄网在线观看| 青青草欧美| 日本中文一二区有码在线| 在线天堂1| 人人综合网| 日本一二三区在线| 香蕉在线依人视频| 色婷婷综合久久久久中文字幕| 最新天堂在线视频| 五月的婷婷| 青青草伊人网| 在线成人免费| 五月天一区二区三区| 东北少妇bbbb搡bbb搡| 国语对白做受xxxxx在| 国产富婆熟妇hd| 亚洲国产精品线路久久| 色噜噜狠狠色综合久| 天堂а√在线中文在线最新版| 九九精品在线观看视频| 欧美成人午夜| 国产午夜精品久久久久久久| 中文字幕国产| 国产成人精品免费视频网页大全| 91免费在线观看网站| 影音先锋 成人| 亚洲精品无码久久久| 992tv人人网tv亚洲精品| 国产l精品国产亚洲区久久| 国产va精品免费观看| 国产伊人自拍| 妺妺窝人体色www在线下载| 水牛影视一区二区三区久| 91激情网| 韩国三级视频在线观看| 特级a欧美做爰片黑人| 国产午夜精品视频免费不卡69堂| 女人少妇偷看a在线观看| 99在线精品国自产拍中文字幕| 99久久国产综合| 成年人免费在线观看视频网站| 人人妻人人a爽人人模夜夜夜| 全球av集中精品导航福利| 国产98色| 国产精品热久久高潮av袁孑怡| 鲁一鲁一鲁一鲁一曰综合网| 伊人99re| 涩涩网站免费| 拔萝卜在线| 午夜福利视频极品国产83| 欧美三极片| 成人国产福利a无限看| 久久疯狂做爰流白浆xxxⅹ| 最新精品国偷自产在线婷婷| 毛片网页| www.猫咪av| 乖疼润滑双性初h| 玩弄放荡人妻少妇系列视频| 日韩av女优在线观看| 亚洲国产精品久久网午夜| 在线黄色免费网站| 久久久久四虎精品免费入口| 国产av国片精品一区二区| 国产福利99| av福利在线看| 国产成人97精品免费看片| 极品尤物av| 国产资源免费| 色一情一乱一乱一区99av| 国产精品推荐天天看天天爽| aaa亚洲| 亚洲淫欲| 国产精品成人aaaaa网站| 在线播放一级片| 国产成人精品免费视频大| 久久爱综合| 日本少妇高潮正在线播放| 国产精品1区2区3区| 国产精品 欧美日韩| 国产性受xxxx白人性爽| 草久免费视频| 久久亚洲中文无码咪咪爱| 亚洲精品乱码久久久久久蜜桃91| 亚洲免费资源| 51福利视频| 99精品国产九九国产精品| 亚洲成人网在线观看| 亚洲综合网站色欲色欲| 妺妺窝人体色www在线下载| 国产精品久久久久久久久免费软件| а√资源新版在线天堂| 日韩欧美高清在线| 福利在线看| 少妇被又大又粗又爽毛片久久黑人 | 国产综合久久99久久| 九九热国产视频| 欧美真人性野外做爰| 亚洲熟妇自拍无码区| 日本天天操| 日韩精品片| av福利网址| 欧美久久国产精品| 中文字幕成人在线观看| 97色在线视频| 特黄aaaaaa私密按摩| 成年人一级片| 中午日产幕无线码1区| 精品国精品国产自在久国产87| 亚洲欧美一区二区三区久久| 亚洲-av-无限看| av黄色软件| 手机午夜电影神马久久| 免费观看黄a片在线观看| 69tv成人网| 日本少妇春药特殊按摩3| www视频在线观看免费| 欧洲精品卡一卡二卡三| 国产亚洲无线码一区二区| 欧美午夜一区二区| 少妇熟女久久综合网色欲| 亚洲人成网站在线播放大全| 亚洲中文字幕无码av永久| 西西人体做爰大胆gogo| 国产精品嫩草影院久久久| 国产色综合天天综合网| 男人天堂2014| 性欧美最猛| 国产精品毛片久久久久久久| 国产免费福利| 久久99精品久久久久久清纯| 久久久久91| 一区二区三区日韩| 性视屏| 日本在线播放| 交换做爰2中文字幕| 在线国产日韩| 欧美亚洲一级| 亚洲成熟少妇视频在线观看| 国产美女自卫慰视频福利| 美女100%视频免费观看| 亚洲成人激情在线| 亚洲精品字幕| 亚洲精品aaa揭晓| 99香蕉视频| 老司机午夜在线| 日韩免费在线视频观看| 男女做爰高清无遮挡免费视频| 亚洲人在线| 成人高潮视频在线观看| 午夜免费学生在线观看av| 久久国产伦子伦精品| 亚洲丝袜av| 久久久久久久.comav| 婷婷成人综合| 午夜精品久久久久久久| 色午夜ww久久久久生女学生| 精品久久久噜噜噜久久| wwwtianlulacom| 五月婷在线| 日本护士xxxxhd少妇| 亚洲首页| 女人的天堂av在线| av成人免费在线观看| 国产精品免费无遮挡无码永久视频 | 99精品国产成人一区二区| 亚洲超碰97无码中文字幕| 成人看片免费| 亚洲精品日韩中文字幕久久久| 老熟妻内射精品一区| 精品国产18久久久久久依依影院| 中文字幕在线天堂| 国产人无码a在线西瓜影音 | 国产乱了实正在真| 亚洲色图17p| 国产做无码视频在线观看浪潮| 精品国产露脸对白在线观看 | 无遮挡19禁啪啪成人黄软件| 国内精品一区二区三区不卡| 18禁无遮挡肉动漫在线播放观看| 国产情侣草莓视频在线| 国产成人午夜高潮毛片男男爱| 国产专区一区二区| 亚洲中文无码av永久| av天堂亚洲国产av| 国产成人久久精品亚洲| 国精产品一品二品国精在线观看| 国产福利一区二区麻豆| 色老大久久综合网天天| 日本熟妇中文字幕三级| 国产又粗又猛又爽又黄的视频p站 欧洲精品无码一区二区三区在线播放 | 国模无码一区二区三区不卡| 天天做日日做天天添天天欢公交车| 欧洲精品码一区二区三区免费看| www色99| julia中文字幕在线| 调教贱奴视频一区二区三区| 久久人人做人人妻人人玩精品hd| 亚洲精品在看在线观看高清| 国产av永久精品无码| 久久久96| 又大又爽又硬的曰皮视频| 99热黄色| 欧洲极品无码一区二区三区 | 成人tv888| 亚洲视频在线看| 夜夜被公侵犯的美人妻| 男女超碰| 欧美精品色婷婷五月综合| 双性人hdsexvideos| 日本不卡视频一区| 国语自产少妇精品视频| 日本三级毛片| 九九热re| 激情内射日本一区二区三区| 91免费看片网站| 欧美一级二级在线观看| 国产传媒在线播放| 深夜在线| 色乱码一区二区三区| 99久久精品一区二区三区| 在线观看亚洲区| 国产成人av三级在线观看| 91超碰在线观看| 亚洲综合首页| 欧美色妞网| 男人放进女人阳道动态图| 激情av无码后入| 忘忧草日本在线www| 熟睡中被义子侵犯在线播放| 欧美乱码精品一区| 狠狠爱网站| 亚洲欧洲日产国码无码| 性色蜜桃臀x88av天美传媒| 蜜臀av夜夜澡人人爽人人| 一级少妇精品久久久久久久| 亚洲另类欧美小说图片区| 国产精品日韩一区| 粉嫩av午夜| 香蕉av一区| 欧美激情免费在线| 日日夜夜爽爽| 亚洲免费av片| 国产视频一区在线观看| 黄色毛片一级| 日韩性色| 日韩av高潮喷水在线观看| 性xxx法国hd极品| 各种虐奶头的视频无码| 青娱乐国产视频| wwww在线观看| 91麻豆vodafone精品| 夜夜春影院| 日韩视频在线观看免费视频| 久久综合伊人77777麻豆| 色老板最新地址| 少妇做爰免费视频网站色黄| 国产成人最新三级在线视频| 国产高清免费| 亚洲一线二线三线品牌精华液久久久 | 深夜爽爽动态图无遮无挡| 国产性生交xxxxx无码| youjizz视频| 国产精品vⅰdeoxxxx国产| 丰满少妇被猛烈进入| 97久久超碰亚洲视觉盛宴| 91秒拍国产福利一区| 野外偷拍做爰全过程| 国产超碰人人模人人爽人人添| 无码人妻h动漫中文字幕| 免费a v在线| 亚洲国产色播av在线| 亚洲中文字幕无线无码毛片| 亚洲乱码在线| 国产97色在线 | 欧洲| 久久久774这里只有精品17| 精品在线观看一区| 国产999在线观看| 久久天天躁狠狠躁亚洲综合公司| 男人添女荫道口喷水| 中文字幕+乱码+中文字幕无忧| 免费无码成人av片在线在线播放| 女警一级淫片免费放| 免费麻豆视频| 日本青草视频| 在线色站| 黄色片国产| 国内精品久久久久伊人av| 好吊视频一区二区三区| 男女做爰全过程免费视频播放 | 日本爽快片100色毛片| 波多野结衣高清一区二区三区| 橘梨纱连续高潮在线观看| 亚洲国产精品成人久久久麻豆| 中文av在线天堂| 国产视频精品在线| 91高清国产视频| 欧美日本一本| 91精品众筹嫩模在线私拍| 亚洲成人影音| 丁香色综合| 色av资源| 成人快色| 天天色影院| 国产精品1234| 国产露脸91国语对白| 精品国产乱| 亚洲线精品一区二区三区八戒| 亚洲视频中文字幕| 天天干天天透| 亚洲精品偷拍影视在线观看| 日产电影一区二区三区| 欧美制服丝袜人妻另类| 日韩伦理在线视频| 99男女国产精品免费视频| 日韩福利片在线观看| 2014av天堂无码一区| 在线观看潮喷失禁大喷水无码| 黄片毛片在线看| 亚洲国产精品女人久久久| 香港三日本三级少妇三级66| 免费看欧美黑人毛片| 免费看的黄色网| 国产资源久久| 日本久久高清一区二区三区毛片| 69视频在线观看| 日本精品啪啪一区二区三区| 国产一区二区精品久久| wwwav在线播放| 999精品国产| 水蜜桃av无码一区二区| 欲色天天网综合久久| 69亚洲精品久久久| 四虎一区二区成人免费影院网址 | 欧美亚洲国产一区二区三区| 国产午夜人做人免费视频| 少妇无码一区二区三区| 激情视频久久| 国产激情在线视频| 国产淫片av片久久久久久| 日韩精品专区在线影院重磅 | 国产精品宾馆精品酒店| 亚洲熟妇自偷自拍另类| 美女av免费看| 91在线综合| 色就色欧美| 成人黄色免费网站| 麻豆av久久av盛宴av| 久久99久久99精品免观看粉嫩| 中文字幕播放| 柠檬福利视频导航| 久久99九九| 国产超碰女人任你爽| 欧美激情中文字幕| 国精产品一二三三区入口| 伊人黄网| 欧美人与动人物牲交免费观看| 成年人网站免费在线观看| 免费黄色网址大全| 久久人妻av一区二区软件| 国产爱豆剧传媒在线观看| 欧美8888| 亚洲成人第一| 天堂网91| 国产污污| 天天色婷婷| 久草网址| 国内精品伊人久久久久影院对白| 亚洲区色欧美另类图片| 麻豆国产成人av在线播放欲色| 四虎最新在线永久免费| 亚洲色大成网站www久久九九| 台湾性dvd性色av| 国产成人精品一区二| 暖暖日本在线| 日本不卡视频在线| 天天爽天天干| 三级特黄60分钟在线播放| 啪啪日韩| 欧洲一卡2卡3卡4卡国产| 欧洲高清转码区一二区| 男人影院在线观看| 久久久国产99久久国产久一| 夜夜爽av福利精品导航| 黑人大战日本人妻嗷嗷叫不卡视频 | 99麻豆久久久国产精品免费| 欧美色图狠狠干| 欧美成人黄色网| 日韩1页| 老女老肥熟国产在线视频| 天天天天做夜夜夜夜做无码| 欧美精品网址| 可以看污的网站| 色哟哟国产| 亚洲成年人av| 丝袜一区二区三区在线播放| 国产免费人成视频尤勿视频| 亚洲拍拍| 亚洲社区在线| 免费精品国产人妻国语三上悠亚| 亚洲 暴爽 av人人爽日日碰| 人人爽人人爽人人爽人人片av| 国产精品网站在线观看免费传媒| 亚洲春色成人| 粉豆av| 欧美叫娇小xx人1314| 无码人妻aⅴ一区二区三区| 国产女人18毛片水真多1kt∧| 日韩av一区二区三区免费看| 欧美亚洲日本一区| jlzzjlzz亚洲女人18| 免费成人视屏| 国产成人网| 97视频人人| 在线观看免费av网| 亚洲国产av无码综合原创国产 | 91久久夜色精品国产九色| 欧美成人精品一区二区三区在线看 | 国产成人午夜精品福利视频| 最新日本一道免费一区二区| 国产对白视频| 日韩大片在线永久免费观看网站| 全国探花| 成人精品综合免费视频| 久久69av| 国产真人无码作爱免费视频| 沈阳熟女露脸对白视频| 东南亚毛片| 九九视频在线观看| 国产一区二区三区在线| 国内精品伊人久久久久7777| 国产人成免费爽爽爽视频| 少妇尝试黑人粗吊受不了| 麻豆一区一区三区四区| 精产一二三产区m553| 日韩影视在线| 日本少妇做爰xxxⅹ漫| 国产ktv交换配乱婬视频| 人妻无码人妻有码中文字幕在线| 日韩av伦理| 91成人动漫| 乱肉合集乱高h男男双龙视频| 日韩精品网| 四虎久久| 国产欧美日韩一区二区搜索| 高h七仙女辣黄h| avhd101高清在线迷片麻豆| 国产一区在线播放| 亚洲欧美日韩视频一区 | 色婷婷一区二区三区四区成人网| 国产91丝袜在线播放| 97夜夜澡人人爽人人| 欧洲亚洲一区二区| 成人黄色免费看| 日韩美女免费视频| 尤物97国产精品久久精品国产| 亚州激情| 新婚少妇紧窄白嫩av| 67194成是人免费无码| 亚洲精品久久久一线二线三线| 99日本精品永久免费久久| ass东方小嫩模pics| 91久久久久| 西西444www大胆无码视频| 日韩乱码人妻无码超清蜜桃| 中文字幕av伊人av无码av| 日本视频免费高清一本18| 婷婷久久五月| 日本一卡精品视频免费| 国产v亚洲v天堂无码久久久| 国产男人的天堂在线视频| 丝袜老师办公室里做好紧好爽| 韩国三级 女的和老头做| 九九久久久| 女模特的呻吟bd| 欧美人禽杂交狂配免费看| 中文字字幕在线中文乱| 日本疯狂做爰xxxⅹ高潮视频| 影音先锋熟女少妇av资源| 精产国品一二三产区m553麻豆| 久久亚洲熟女cc98cm| 久久精品国产麻豆| 国产人人爱| 欧美三级视频在线播放| 久久婷婷五月综合色高清| 在线观看色网站| a级一片| 好爽又高潮了毛片免费下载| 亚洲精品无码久久久久牙蜜区| 老色鬼永久精品网站| 激情航班h版在线观看| 91精品国产一区二区三区动漫| 毛片毛片女人毛片毛片| 久久高清内射无套| 婷婷色国产偷v国产偷v小说| 日韩av在线免费播放| 午夜精品三级久久久有码| 国产av一区最新精品| 青青草在线播放| 91看片看淫黄大片| 亚洲一区二区三区影视| 五月婷久久综合狠狠爱97| 国产成人av一区二区三区| 国产精品美女一区二区三区四区 | 成人欧美一区二区三区视频| 亚洲午夜小视频| 午夜伦伦| 欧洲熟妇色xxxx欧美老妇多毛图片 | 国产嫩草视频| 欧美日韩成人免费| 亚洲无毛女| 久草免费在线色站| 欧美性开放情侣网站| 久久久久久伊人高潮影院| 天堂91| 成人做爰www看视频软件| 182午夜视频| 麻豆乱淫一区二区三区| 91社区福利| 99这里只有是精品2| 国产一区二区久久| 人间精品视频在线播放| 亚洲国产经典| 寂寞少妇做spa按摩无码| av免费观看网| 亚洲精品国产一区二区精华液| 日韩三级黄| 欧美粉嫩videosex极品| 久久精品国产亚洲欧美成人| 中国av片| 中文av网站| 恶虐女帝安卓汉化版最新版本 | 青青草成人影视| 红杏成人免费视频| 91五月色国产在线观看| 欧美在线二区| 亚洲免费精品视频| 色国产在线| 国产精品无码无卡在线播放| 99产精品成人啪免费网站| 亚洲综合色在线视频www| www毛片| 天天摸天天操天天爽| 国产亚洲精品久| 免费黄毛片| 青青操在线观看| 69婷婷国产精品入口| 草久免费视频| 国产欧美va欧美va香蕉在线观看 | 日本变态折磨凌虐bdsm在线| www.xxx亚洲| 偷啪自啪| 欧美老妇与zozozo交| 国产亚洲va综合人人澡精品| 午夜免费看| 99久久婷婷国产综合亚洲| 乱人伦视频中文字幕| 黄色三级毛片网站| 欧美天天搞| 日韩福利小视频| 麻豆文化传媒精品一区| 国产中文视频| 欧美福利一区二区三区| 欧美成人精精品一区二区频| 中文字幕日本特黄aa毛片| 久久人妻少妇嫩草av蜜桃| 一级裸体黄色片| 亚洲中文字幕第一页在线| 国产精品亚洲片夜色在线| 爱丝aiss无内高清丝袜视频| 欧美香蕉爽爽人人爽| 亚洲成a人片在线观看中文无码| 日本大香伊蕉一区二区| 曰本无码不卡高清av一二| 天天躁日日躁狠狠躁人妻| 午夜在线看片| 欧美乱大交xxxxx春色视频| 性xxxx欧美老妇506070| 国产在线视频自拍| 美女性高潮视频| 国产精品视频久久久久| 欧美日韩久久久久久| 国产成人精品三上悠亚| 黄色av导航| 好大好深好猛好爽视频拍拍拍| 午夜视频在线看| 丝袜美腿一区二区三区动态图| 依人在线| 国内av自拍| 黄色网战在线观看| 高潮迭起av乳颜射后入| aaaa黄色| 亚洲精品999| 久久色播| 又大又黄又粗又爽的免费视频| 国产精品99蜜臀久久不卡二区| 玖玖国产精品视频| 91网站免费视频| 国产乱人伦无无码视频试看| 经典一区二区| 午夜精品久久久久久久蜜桃| 男女性高爱潮免费网站| 本田岬av| 喷潮在线| 国产69精品久久久久9999不卡免费| 欧美粉嫩videosex极品| 一区二区三区av高清免费波多| 狠狠久久永久免费观看| 亚洲啪| 91嫩草香蕉| 中文字幕手机在线看片不卡 | 亚洲精品国产乱码在线看蜜月| 午夜理论片yy44880影院| 久久久wwww| 国产 日韩 欧美 制服 另类| 男人激烈吮乳吃奶爽文| 台湾十八成人网| 亚洲—本道中文字幕东京热 | 国产精品久久久久成人| 日韩av无码中文一区二区三区| 真人性生交免费视频| 国产成人精品日本亚洲一区| 免费黄色av网站| 欧美人与动性xxxxbbbb| 丝袜美腿亚洲一区二区图片| 97人人超碰国产精品最新| 亚洲综合最新无码专区| 最新精品国偷自产在线婷婷| www中文字幕com| 99热导航| 日日橹狠狠爱欧美视频| 女人被爽到高潮视频免费国产| 在线观看少妇| 国产伦精品一区二区三区四区视频| 亚欧美在线| 欧美视频日韩| 毛片随便看| 国产精品96久久久久久又黄又硬| 日本九九视频| 一级二级av| 蜜桃成人在线视频| 成人h在线| 成人黄色激情视频| 97人人模人人爽人人喊电影| 亚洲国产精品久久电影欧美| 非洲黑人毛片| 成人在线综合网| 欧美裸体xxxx极品少妇| 免费国产人成网站x8x8| 丰满少妇被猛烈进入高清app| 免费的av| 亚洲卡一卡二卡三| 亚洲福利影院| 夜夜操网站| 18精品爽国产白嫩精品| 国产黄色小视频在线观看| 久久精品192.168.0.1| 韩国av一区二区三区| 露脸内射熟女--69xx| 亚洲天堂日韩精品| 久久精品99久久久久久2456| 成人乱淫av日日摸夜夜爽| 亚洲天堂成人在线| 色屁屁ts人妖系列二区| 乱码午夜-极国产极内射| 亚州黄色网址| 亚洲国产精品色拍网站| 欧美粗暴se喷水| 国产精品电影久久久久电影网| 真人与拘做受免费视频| 天堂av在线资源| 中日韩精品视频| xxx日韩| 国产一区二区三区四区| 亚洲成av人在线视| 看片在线| 国产ae86亚洲福利入口| 中文字幕v亚洲日本在线电影| 8x8ⅹ8成人免费视频观看| 亚洲激情| 真人啪啪高潮喷水呻吟无遮挡| 免费看国产精品| 无乱码区1卡2卡三卡网站| 18国产精品福利片久久婷| 亚洲乱码在线观看| 久久久久国产精品人妻| 两性色午夜视频免费播放| 色哟哟国产精品免费观看| 99久久免费精品| 欧美精品黑人粗大破除| av无码av在线a∨天堂app| 18禁真人抽搐一进一出免费| 韩国av三级| 91精品国产99久久久| 一区视频在线| a级黄色片在线观看| 蜜桃成熟时李丽珍在线观看| 五月天精品在线| 91porn国产成人福利| 高清国产亚洲欧洲av综合一区| аⅴ天堂中文在线网| 亚洲综合国产成人丁香五月激情| 7777久久亚洲中文字幕蜜桃| 1717国产精品久久| 天天摸天天做天天爽2019| 色欲一区二区三区精品a片| 日本动漫瀑乳h动漫啪啪免费| 国产主播av在线| 亚洲图色视频| jzzijzzij日本成熟少| 中文在线а√在线天堂中文| 在线黄色毛片| 欧美人与动交视频在线观看 | 国产成人喷潮在线观看| 青娱国产区在线| 久久久久女| 亚洲熟妇自拍无码区| 国产精品无码av一区二区三区| 国产精品久久久久久爽爽爽| 人人爽天天碰天天躁夜夜躁| 日本香蕉网| 欧美成人福利视频| 久久精品亚洲国产av老鸭网| 真人做爰高潮全过程毛片| 欧美噜噜久久久xxx| 我想看黄色毛片| 军人粗大的内捧猛烈进出视频| 日韩精品――中文字幕| av网站网址| 色婷婷免费| 无码av免费一区二区三区| 另类激情视频| 亚洲欧洲日产国码av老年人| 欧美日韩毛片| 女职员的丝袜 中文字幕| 成年人精品视频| 日韩精品一区二区三区第95| a天堂在线观看| 日韩作爱视频| 午夜精品亚洲| 美国少妇性做爰| 国模丽丽啪啪一区二区| 日韩午夜一区| 欧美大片免费| xxx性欧美| 黄色一级片儿| 国产精品性生活| 国产剧情自拍| 久久国产天堂福利天堂| 九九精品超级碰视频| 国产毛1卡2卡3卡4卡网站| 欧美激情免费看| 免费动漫av| 成人a√| 久久桃色| 干欧美少妇| 久久久久国产精品人妻aⅴ免费| yy6080久久伦理一区二区| 青青草这里只有精品| 久久视频在线| 插插无码视频大全不卡网站| 亚洲熟女少妇一区二区| 久久婷五月| 91自愉自愉产区24区| 成人羞羞网站入口免费| 亚洲永久av| 午夜精品乱人伦小说区| 老司机深夜福利在线观看| jizz免费| 国产97在线 | 中文| 久久精品视频99| 99热成人精品热久久| 国产性在线| 成人无码专区免费播放三区| 99爱精品| 四虎激情| 亚洲va中文字幕无码一区| 亚洲精品无码乱码成人 | 亚洲成人黄色片| 午夜在线视频| 18美女裸体免费观看网站 | 狠狠色狠狠色综合伊人| 少妇爆乳无码专区网站| 麻豆一区二区99久久久久| 韩国黄色网址| 色窝在线| 久久人妻夜夜做天天爽| 黄色片在线| 中文人妻熟妇乱又伦精品| 日本道二区免费v| 绿帽在线| 九九啪| 天堂中文av在线| 亚洲国产福利成人一区二区| 日韩黄页在线观看| 综合激情五月丁香久久| 亚洲啪啪av| 人人玩人人添人人澡超碰偷拍| 色综合中文字幕| 成人日韩欧美| 成人亚洲欧美成αⅴ人在线观看| 欧美激情四区| 久久久喷潮一区二区三区| 亚洲婷婷一区| 亚洲福利精品| 欧美多p视频| 日韩 欧美 动漫 国产 制服| 色噜噜狠狠色综合网| 中国精品毛片| 久草播放| 国产综合区| www青青草| 精久久久久久| 日韩福利网| 嫩草视频入口| 国产美女明星三级做爰| 日本精品videosse×少妇| 青青青手机频在线观看| 我看午夜视频| 欧美特一级| 亚洲资源av| av中文资源| 13小箩利洗澡无码视频网站免费| 国产成人一区二区三区别| 日产中文字幕一码| 亚洲网站视频| 日本熟妇乱人伦xxxx| 欧美精品一二三| hd最新国产人妖ts视频| 亚洲色偷精品一区二区三区| 欧美色图亚洲视频| 久久一区av| 991本久久精品久久久久| 婷婷五月日韩av永久免费| 原创av| 亚洲精品久久久久中文第一暮| www.久久精品| 成人欧美视频| 欧洲免费无码视频在线| 欧洲色播| 国产一区二区三区视频| 国产成人 综合 亚洲欧美| 亚洲男女视频| 久草成人在线| 波多野结衣一区二区三区中文字幕 | 四虎影视8848hh| 狠狠综合久久av| av在线播放网| av丝袜天堂| 高清国产天干天干天干不卡顿| 伊人网址| 青青久在线视频免费观看| 久久亚洲综合网| 96av在线| www日本tv| 欧美在线一区二区三区四区| 色婷婷五月综合亚洲小说| 亚洲精品国偷自产在线99正片| 国产成人久久a免费观看| 欧美三级日本| youjizzjizz丰满| 无码专区—va亚洲v专区| 欧美日韩3p| 18禁毛片无遮挡嫩草视频| 三级三级18女男| 亚洲美女爱爱| 无码一区二区三区亚洲人妻 | 毛片网站入口| 日韩欧美一二三区| 国产农村熟妇videos| 伊人久久综合狼伊人久久| 成人午夜网站| 精品卡一卡二卡3卡高清乱码| 污污又黄又爽免费的网站| 综合偷自拍亚洲乱中文字幕| 精品视频不卡| 日韩精品第二页| 国内精品综合久久久40p| 天躁夜夜躁狼狠躁| 欧美123区| 伊人情人色综合网站| 天海翼一区二区三区四区演员表 | va精品| 黄色av大全| 欧美群妇大交乱免费视频| 亚洲欧洲精品成人久久曰| 国产精品久久久久毛片| 日本无遮挡大尺度床戏网站| 欧美成人做爰大片免费看黄石| 黄频在线看| 国产精品第| 满春阁精品a∨在线观看| 天堂av免费| 欧美一区二区三区爱爱| 一级二级av| 亚洲va中文字幕无码一区| 欧美与黑人午夜性猛交久久久| 6080啪啪| 韩国三级视频在线| 五月婷在线视频| 亚洲gv2023| 国产精品丝袜一区二区三区| 欧美狂猛xxxxx乱大交3| 国产网站黄| 国语自产拍在线观看对白 | 欧美黄色大片免费观看| 制服丝袜在线看| 国产午夜福利在线播放| 少妇一级免费| 日本在线一区二区三区欧美| 久草原精品资源视频| 玩弄丰满熟妇xxxxx性60| 国产精品5区| 青草视频在线播放| 极品 在线 视频 大陆 国产| 国产草逼av| 天天操国产| 亚洲成a人片在线观看无遮挡 | 成人免费国产| a级成色和s级成色视频| 午夜精品久久久久久久久久久久| 91精品一线二线三线| 色播在线| 免费黄色小视频在线观看| 日韩在线免费播放| 少妇人妻久久无码专区| 国产成人a∨激情视频厨房| 国产色视频网免费| 国产精品久久久久久久久鸭无码 | 中国女人真人一级毛片| 免费的色视频| 狠狠色丁香| 91p在线观看| caoprom在线视频| 亚洲无毛女| 美女黄色免费网站| 好爽…又高潮了毛片免费看| 91福利视频在线观看| 国产在线超清日本一本| 综合色88| 欧美两根一起进3p做受视频| 春潮带欲高h1| 日本无遮挡边做边爱边摸| 国产精品噜噜噜66网站| 深夜老司机福利| 国产极品福利| 国产精品成人一区二区三区夜夜夜| 色哟哟精品网站在线观看| 日本老太婆做爰视频| 日本熟熟妇xxxxx精品熟妇| 亚洲 综合 清纯 丝袜 自拍| 91激情影院| 伊人久久免费视频| 欧美巨大极度另类| 亚洲欧洲日韩综合| 欧美一区二区人人喊爽| 情欲少妇苏霞沉沦100| 爱情岛论坛自拍| av手机在线免费观看| 久久99精品国产麻豆婷婷洗澡| 亚洲男人精品| 李丽珍a级裸体啪啪| 无码乱肉视频免费大全合集| 久久精品国产清高在天天线| 成人性生交大片免费看r老牛网站| 激情噜噜| 国产av永久无码精品网站| 超碰啪啪| 精品在线免费播放| 日本伦理一区二区三区| 无码三级中文字幕在线观看| 乳女教师の诱惑juliamagnet| 国产精品夜夜春夜夜爽| 亚洲依依成人亚洲社区| 精品国色天香一卡2卡3卡| 2020国产精品精品国产| 99视频久| 伊人久久大香线蕉综合av| 日韩av在线影视| 色婷婷综合缴情综免费观看| 成人免费在线视频网站| 亚洲欧洲中文日韩av乱码| 无码国产精品一区二区免费i6| 不卡av电影在线| 极品少妇高潮到爽| 久久久久偷看国产亚洲87| 国产激情视频在线播放| 国产精品无套内射迪丽热巴| 手机看黄色| 成年人视频网址| 午夜免费av| 五月婷香蕉久色在线看| 亚洲精品毛片一级91精品| 91精品久久久久| 亚洲人成网站在小说| 日韩黄色免费观看| 日韩精品短片| 丰满人妻熟妇乱又仑精品| 久久久伦理片| 欧美成人三级精品| 亚洲综合国产精品| 国产ts人妖系列张思妮在线观看| 超碰在线免费播放| 久久久久久av无码免费网站| 97精产国品一二三| 日韩avwww| 精品人妻码一区二区三区| 亚洲精品免费观看| 国产精品高潮呻吟久| 91视频3p| 天堂а√中文在线官网| 黄色.com| 日产亚洲一卡2卡3卡4卡网站| 中文免费在线观看| 天天躁日日躁狠狠躁婷婷| 免费在线观看亚洲| a√视频在线| 成人在线a| 国产真实伦视频| 久久精热| av在线激情| 国产综合久久久久久鬼色| 色之综合天天综合色天天棕色| 在线观看国产91| 中文字字幕人妻中文| 天天5g天天爽免费观看| 五月天激情开心网| 人妻丰满熟妇av无码处处不卡 | 久久久99精品成人片中文字幕| 黄色毛片小视频| 绝色美妇性调教沦为玩物| 2018天天干天天操| 欧美精品 日韩| 99精品久久久久久久婷婷| 特级av片| 国产综合色视频| 成人做爰www网站视频| 日韩麻豆| 欧美3p在线观看| 欲色欲色天天天www| 韩国成人在线视频| 国产精品高潮呻吟av久久软件| yy6080理aa级伦大片一级| 黄色一级网站| 69大东北熟妇高潮呻吟| 精品欧美一区二区在线观看| 国产精品高潮呻吟视频| 日韩精品av一区二区三区| 韩国日本三级在线观看| 天天干夜夜欢| 另类性姿势bbwbbw| 久久久久成人网| 欧美 亚洲 国产 制服 中文| 欧美男女激情| 国产精品久久久久久亚洲色| 色老头精品午夜福利视频| 久久久精品中文字幕| 免费a级毛片出奶水| 国产精品二区三区| 日本成片网| 欧美日韩久久久久久| 极品美女av| 日本五月天婷久久网站| 亚洲日本中文字幕乱码在线电影| 欧美啪啪网| 黄色福利在线观看| 四川妇女偷人毛片大全| 久久黄页| 久操久热| 男人的天堂网在线| 91色呦呦| 夜天干天干啦天干天天爽| 欧美男男大粗吊1069| 69视频免费在线观看| 欧美精品久久| 欧美变态杂交xxxx| 日韩成人在线播放| 精品av国产一二三四区| 九久久| 香蕉久热| 国产麻豆一区二区三区在线观看| 91精品成人久久| 亚洲爆乳成av人在线视水卜 | av中文在线资源| 亚洲va无码专区国产乱码| 日本免费成人| 欧洲精品久久久| 小草社区在线观看播放| 少妇特黄a一区二区三区| 69日影院| 99久久99久久精品| 免费精品国自产拍在线播放| 亚洲 另类 日韩 制服 无码| 激情内射亚洲一区二区三区爱妻| 成人黄色在线免费观看| 亚洲 综合 清纯 丝袜 自拍| 天天综合一区| 欧美日韩在线亚洲二区综二| 免费看av大片| 日韩精品在线免费| 香港午夜三级a三级三点在线观看| 国产3p在线播放| 极品少妇一区二区三区| 青青草在线播放| 91私密视频| 国产乱人伦偷精品视频色欲| 国产精品天天看| 欧美男生射精高潮视频网站| 女人爽到高潮视频免费直播| 午夜色婷婷| 免费观看潮喷到高潮大叫网站| 亚洲国产成人女毛片在线主播| 亚洲区一区二| 欧美成人一区二免费视频| 99热这里只有精品在线观看| 日韩精品 在线 国产 丝袜| 激情图片在线视频| 深爱激情综合网| 久久国产精品日本波多野结衣 | www.色综合.com| 日本一本久| 欧洲乱码伦视频免费国产| 日韩av一国产av一中文字慕| 亚洲国产欧美在线人成| 在线天堂www在线资源下载| 丰满五十六十老熟女hd| 欧美亚洲国产片在线播放|