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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4926|回復(fù): 0
收起左側(cè)

ProtoThreads多線程實(shí)例

[復(fù)制鏈接]
ID:112317 發(fā)表于 2016-4-9 20:14 | 顯示全部樓層 |閱讀模式
發(fā)一個(gè)我前段時(shí)間用ProtoThreads寫的一個(gè)讀取Serial角度并用模擬的方式驅(qū)動(dòng)舵機(jī)
關(guān)于ProtoThreads的介紹:http://www.izizhuan.cn/bbs/dpj-47836-1.html
代碼如下

  1.     #include <PT_timer.h>
  2.     #include <pt.h>
  3.     int servopin=8;//定義舵機(jī)接口數(shù)字接口7
  4.     int myangle=100;//定義角度變量
  5.     int val=0;
  6.     static struct pt pt1,pt2;
  7.     PT_timer servotimer;
  8.     static int servoMove(struct pt *pt)
  9.     {  
  10.       PT_BEGIN(pt);  
  11.       while(1)
  12.       {
  13.             servotimer.setTimer(25);
  14.             PT_WAIT_UNTIL(pt,servotimer.Expired());
  15.             int pulsewidth;//定義脈寬變量
  16.             myangle%=156;//視舵機(jī)而定,防止越界
  17.             pulsewidth=myangle*11+500;//將角度轉(zhuǎn)化為500-2205的脈寬值
  18.             digitalWrite(servopin,HIGH);//將舵機(jī)接口電平至高
  19.             delayMicroseconds(pulsewidth);//延時(shí)脈寬值的微秒數(shù)
  20.             digitalWrite(servopin,LOW);//將舵機(jī)接口電平至低
  21.       }
  22.       PT_END(pt);
  23.     }

  24.     String inString = "";
  25.     static int angleRead(struct pt *pt)
  26.     {
  27.       PT_BEGIN(pt);
  28.       while(1) {   
  29.         PT_WAIT_UNTIL(pt, Serial.available()>0);
  30.             int inChar = Serial.read();
  31.         if (isDigit(inChar))
  32.           inString += (char)inChar;
  33.         if (inChar == ' '||inChar=='\n') {
  34.           myangle=inString.toInt();
  35.               Serial.print("myangle=");
  36.               Serial.println(myangle);
  37.           inString = "";
  38.             }
  39.       }
  40.       PT_END(pt);
  41.     }
  42.     void setup()
  43.     {
  44.       pinMode(servopin,OUTPUT);//設(shè)定舵機(jī)接口為輸出接口
  45.       PT_INIT(&pt1);
  46.       PT_INIT(&pt2);
  47.       Serial.begin(9600);
  48.     }
  49.     void loop()//
  50.     {
  51.         servoMove(&pt1);
  52.         angleRead(&pt2);
  53.     }
復(fù)制代碼

ServoMove呢就是自己模擬出來的舵機(jī)函數(shù),為什么不用servo庫呢?因?yàn)閍rduino自身的servo庫有很多限制,第一PWM不能用了,第二最小角度只有1度,當(dāng)然這個(gè)程序里舵機(jī)的精度也是1度,只要把相應(yīng)的變量改成float就能精確到小數(shù)了,不過最大的好處是舵機(jī)腳可以任意設(shè)定
servomove中限定了最大角度為155度,這個(gè)與舵機(jī)有關(guān)
angleRead中使用了stringtoInt,每次可以輸入一個(gè)角度,角度可以以 空格 或 回車 結(jié)尾(操蛋的VC2010 SerialMonitor發(fā)送數(shù)據(jù)不帶 回車的。。那就空格了)
程序中使用了定時(shí)器,自己用C++寫的,第一次寫庫,照葫蘆畫瓢了。。。
感謝czad的擴(kuò)展庫翻譯:http://www.izizhuan.cn/bbs/dpj-47837-1.html
這個(gè)庫用起來非常簡(jiǎn)單:
PT_Timer t;//定義一個(gè)定時(shí)器
t.setTimer(unsinged long time) //定時(shí)時(shí)間,單位ms
t.Expired()//判斷定時(shí)器是否溢出,是返回值>0
在上面的代碼中,一個(gè)舵機(jī)周期是20ms,前面的約2.5毫秒是信號(hào)周期,剩下的10多ms全是無用的低電平,然而又必不可少,所以果斷用定時(shí)器取代delay
ok

pt.h
  1. /*
  2. * Copyright (c) 2004-2006, Swedish Institute of Computer Science.
  3. * All rights reserved.
  4. *
  5. * Redistribution and use in source and binary forms, with or without
  6. * modification, are permitted provided that the following conditions
  7. * are met:
  8. * 1. Redistributions of source code must retain the above copyright
  9. *    notice, this list of conditions and the following disclaimer.
  10. * 2. Redistributions in binary form must reproduce the above copyright
  11. *    notice, this list of conditions and the following disclaimer in the
  12. *    documentation and/or other materials provided with the distribution.
  13. * 3. Neither the name of the Institute nor the names of its contributors
  14. *    may be used to endorse or promote products derived from this software
  15. *    without specific prior written permission.
  16. *
  17. * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
  18. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  19. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  20. * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
  21. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  22. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  23. * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  24. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  25. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  26. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  27. * SUCH DAMAGE.
  28. *
  29. * Author: Adam Dunkels <adam@sics.se>
  30. *
  31. * $Id: pt.h,v 1.6 2006/06/03 11:29:43 adam Exp $
  32. */

  33. /**
  34. * \addtogroup pt
  35. * @{
  36. */

  37. /**
  38. * \file
  39. * Protothreads implementation.
  40. * \author
  41. * Adam Dunkels <adam@sics.se>
  42. *
  43. */

  44. #ifndef __PT_H__
  45. #define __PT_H__

  46. #include "lc.inc"


  47. struct pt {
  48.   lc_t lc;
  49. };

  50. #define PT_WAITING 0
  51. #define PT_EXITED  1
  52. #define PT_ENDED   2
  53. #define PT_YIELDED 3

  54. /**
  55. * \name Initialization
  56. * @{
  57. */

  58. /**
  59. * Initialize a protothread.
  60. *
  61. * Initializes a protothread. Initialization must be done prior to
  62. * starting to execute the protothread.
  63. *
  64. * \param pt A pointer to the protothread control structure.
  65. *
  66. * \sa PT_SPAWN()
  67. *
  68. * \hideinitializer
  69. */
  70. #define PT_INIT(pt)   LC_INIT((pt)->lc)

  71. /** @} */

  72. /**
  73. * \name Declaration and definition
  74. * @{
  75. */

  76. /**
  77. * Declaration of a protothread function.
  78. *
  79. * This macro is used to declare a protothread function. Protothreads
  80. * function should be declared with this macro, but can also be
  81. * declared as regular C functions that return an integer value.
  82. *
  83. * \param name_args The name and arguments of the C function
  84. * implementing the protothread.
  85. *
  86. * \hideinitializer
  87. */
  88. #define PT_THREAD(name_args) char name_args

  89. /**
  90. * Declare the start of a protothread inside the C function
  91. * implementing the protothread.
  92. *
  93. * This macro is used to declare the starting point of a
  94. * protothread. It should be placed at the start of the function in
  95. * which the protothread runs. All C statements above the PT_BEGIN()
  96. * invokation will be executed each time the protothread is scheduled.
  97. *
  98. * \param pt A pointer to the protothread control structure.
  99. *
  100. * \hideinitializer
  101. */
  102. #define PT_BEGIN(pt) { char PT_YIELD_FLAG = 1; LC_RESUME((pt)->lc)

  103. /**
  104. * Declare the end of a protothread.
  105. *
  106. * This macro is used for declaring that a protothread ends. It must
  107. * always be used together with a matching PT_BEGIN() macro.
  108. *
  109. * \param pt A pointer to the protothread control structure.
  110. *
  111. * \hideinitializer
  112. */
  113. #define PT_END(pt) LC_END((pt)->lc); PT_YIELD_FLAG = 0; \
  114.                    PT_INIT(pt); return PT_ENDED; }

  115. /** @} */

  116. /**
  117. * \name Blocked wait
  118. * @{
  119. */

  120. /**
  121. * Block and wait until condition is true.
  122. *
  123. * This macro blocks the protothread until the specified condition is
  124. * true.
  125. *
  126. * \param pt A pointer to the protothread control structure.
  127. * \param condition The condition.
  128. *
  129. * \hideinitializer
  130. */
  131. #define PT_WAIT_UNTIL(pt, condition)                \
  132.   do {                                                \
  133.     LC_SET((pt)->lc);                                \
  134.     if(!(condition)) {                                \
  135.       return PT_WAITING;                        \
  136.     }                                                \
  137.   } while(0)

  138. /**
  139. * Block and wait while condition is true.
  140. *
  141. * This function blocks and waits while condition is true. See
  142. * PT_WAIT_UNTIL().
  143. *
  144. * \param pt A pointer to the protothread control structure.
  145. * \param cond The condition.
  146. *
  147. * \hideinitializer
  148. */
  149. #define PT_WAIT_WHILE(pt, cond)  PT_WAIT_UNTIL((pt), !(cond))

  150. /** @} */

  151. /**
  152. * \name Hierarchical protothreads
  153. * @{
  154. */

  155. /**
  156. * Block and wait until a child protothread completes.
  157. *
  158. * This macro schedules a child protothread. The current protothread
  159. * will block until the child protothread completes.
  160. *
  161. * \note The child protothread must be manually initialized with the
  162. * PT_INIT() function before this function is used.
  163. *
  164. * \param pt A pointer to the protothread control structure.
  165. * \param thread The child protothread with arguments
  166. *
  167. * \sa PT_SPAWN()
  168. *
  169. * \hideinitializer
  170. */
  171. #define PT_WAIT_THREAD(pt, thread) PT_WAIT_WHILE((pt), PT_SCHEDULE(thread))

  172. /**
  173. * Spawn a child protothread and wait until it exits.
  174. *
  175. * This macro spawns a child protothread and waits until it exits. The
  176. * macro can only be used within a protothread.
  177. *
  178. * \param pt A pointer to the protothread control structure.
  179. * \param child A pointer to the child protothread's control structure.
  180. * \param thread The child protothread with arguments
  181. *
  182. * \hideinitializer
  183. */
  184. #define PT_SPAWN(pt, child, thread)                \
  185.   do {                                                \
  186.     PT_INIT((child));                                \
  187.     PT_WAIT_THREAD((pt), (thread));                \
  188.   } while(0)

  189. /** @} */

  190. /**
  191. * \name Exiting and restarting
  192. * @{
  193. */

  194. /**
  195. * Restart the protothread.
  196. *
  197. * This macro will block and cause the running protothread to restart
  198. * its execution at the place of the PT_BEGIN() call.
  199. *
  200. * \param pt A pointer to the protothread control structure.
  201. *
  202. * \hideinitializer
  203. */
  204. #define PT_RESTART(pt)                                \
  205.   do {                                                \
  206.     PT_INIT(pt);                                \
  207.     return PT_WAITING;                        \
  208.   } while(0)

  209. /**
  210. * Exit the protothread.
  211. *
  212. * This macro causes the protothread to exit. If the protothread was
  213. * spawned by another protothread, the parent protothread will become
  214. * unblocked and can continue to run.
  215. *
  216. * \param pt A pointer to the protothread control structure.
  217. *
  218. * \hideinitializer
  219. */
  220. #define PT_EXIT(pt)                                \
  221.   do {                                                \
  222.     PT_INIT(pt);                                \
  223.     return PT_EXITED;                        \
  224.   } while(0)

  225. /** @} */

  226. /**
  227. * \name Calling a protothread
  228. * @{
  229. */

  230. /**
  231. * Schedule a protothread.
  232. *
  233. * This function shedules a protothread. The return value of the
  234. * function is non-zero if the protothread is running or zero if the
  235. * protothread has exited.
  236. *
  237. * \param f The call to the C function implementing the protothread to
  238. * be scheduled
  239. *
  240. * \hideinitializer
  241. */
  242. #define PT_SCHEDULE(f) ((f) == PT_WAITING)

  243. /** @} */

  244. /**
  245. * \name Yielding from a protothread
  246. * @{
  247. */

  248. /**
  249. * Yield from the current protothread.
  250. *
  251. * This function will yield the protothread, thereby allowing other
  252. * processing to take place in the system.
  253. *
  254. * \param pt A pointer to the protothread control structure.
  255. *
  256. * \hideinitializer
  257. */
  258. #define PT_YIELD(pt)                                \
  259.   do {                                                \
  260.     PT_YIELD_FLAG = 0;                                \
  261.     LC_SET((pt)->lc);                                \
  262.     if(PT_YIELD_FLAG == 0) {                        \
  263.       return PT_YIELDED;                        \
  264.     }                                                \
  265.   } while(0)

  266. /**
  267. * \brief      Yield from the protothread until a condition occurs.
  268. * \param pt   A pointer to the protothread control structure.
  269. * \param cond The condition.
  270. *
  271. *             This function will yield the protothread, until the
  272. *             specified condition evaluates to true.
  273. *
  274. *
  275. * \hideinitializer
  276. */
  277. #define PT_YIELD_UNTIL(pt, cond)                \
  278.   do {                                                \
  279.     PT_YIELD_FLAG = 0;                                \
  280.     LC_SET((pt)->lc);                                \
  281.     if((PT_YIELD_FLAG == 0) || !(cond)) {        \
  282.       return PT_YIELDED;                        \
  283.     }                                                \
  284.   } while(0)

  285. /** @} */

  286. #endif /* __PT_H__ */

  287. /** @} */
復(fù)制代碼

附上
ProtoThreads Timer.rar (13.23 KB, 下載次數(shù): 11)

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
精品三级久久久| 麻豆成人91精品二区三区| 一级毛片国产| 亚洲在线视频播放| 午夜影院免费观看视频| 免费在线一区二区| 久久成年人免费电影| 亚洲成a人片在线观看中文| 18涩涩午夜精品.www| 国产精品视频九色porn| 亚洲女与黑人做爰| 欧美军同video69gay| 亚洲精品国产电影| 国产精品亚洲精品| 青青艹视频在线| 精品理论电影在线| 黄色污污视频在线观看| 国产精品三级a三级三级午夜| 精品久久久久久亚洲综合网站| 日韩三级久久久| 欧美国产日韩在线视频| 欧美日韩在线免费观看视频| 成人在线精品视频| 欧美激情影音先锋| 精品亚洲男同gayvideo网站| 91久久香蕉国产日韩欧美9色| 久久久精品综合| 免费成人av资源网| 欧美日本精品| 久久九九热re6这里有精品| 手机在线观看av| 在线观看免费黄视频| 毛片视频免费| 加勒比免费视频| 日本久久天堂| 国产精品自偷自拍| 男人日女人网站| 在线观看亚洲网站| 亚洲av无码一区二区三区人| 污污的视频免费观看| 少妇高潮毛片色欲ava片| 午夜一区二区三区| 久久99国产精品| 成人动漫网站在线观看| 欧美亚洲激情视频| 久久天天躁狠狠躁夜夜av| 国产网站欧美日韩免费精品在线观看| 欧美色综合天天久久综合精品| 亚洲女子a中天字幕| 久久久高清一区二区三区| 国产成人精品免费| 香蕉成人app免费看片| 一级片免费在线| 91破解版在线看| 四虎影视av| 羞羞在线视频| 亚洲jizzjizz妇女| 天天摸天天做天天爽水多| 黄色激情网址| jizzjizz日本护士视频| av电影不卡在线观看| 嫩草影院入口一二三| 人与牲动交xxxbbb| 毛片女人与拘交视频| 拍拍拍无挡免费播放视频在线观看| 鲁啊鲁视频在线精品| 欧美粗暴性video| 国产成人综合亚洲欧美在| 国产成在线观看免费视频| 国产成人亚洲精品乱码在线观看| 国内国产区免费视频| 亚洲bt欧美bt日本bt| 欧美三级黄色大片| 欧美不卡三区| 欧美日韩在线不卡一区| 久久综合福利| 欧美在线视频二区| 天堂资源在线亚洲视频| 日韩视频在线播放| 欧美xxxx吸乳| 欧美色图色综合| av网站在线不卡| 99久久久无码国产精品性波多| 午夜免费一级片| 欧美极品jizzhd欧美仙踪林| 北岛玲一区二区| 手机av在线不卡| 久草视频中文在线| 久久久成人免费视频| 国产日韩在线观看av| 丁香婷婷久久| 激情中国色综合| 欧美高清hd| 欧美日韩水蜜桃| 亚洲视频一二| 久久99国内精品| 99精品欧美一区二区三区综合在线| 久久久99精品免费观看| 一区二区不卡在线播放| 欧美伊人久久大香线蕉综合69| 日韩西西人体444www| 亚洲精品国产美女| 久久精品国产99国产精品澳门 | www.性欧美| 欧美精品密入口播放| 精品免费在线| 蜜芽视频在线观看| 大地资源中文在线观看免费版| 免费在线观看av| 在线观看v片| 大香伊人久久精品一区二区 | 日日噜噜噜夜夜爽爽| 天天操中文字幕视频| 影音先锋久久精品| 91天堂在线视频| 国产精品亚洲第五区在线 | 一区二区三区在线观看欧美| 97精品一区| 久久久久国产一区二区| 粉嫩aⅴ一区二区三区四区五区| 欧美极品少妇xxxxⅹ高跟鞋| 色香色香欲天天天影视综合网| 亚洲国产小视频在线观看| 久久久免费精品视频| 99久久一区三区四区免费| 一区二区欧美日韩| 中文字幕线观看| www.av成人| 国产欧美日韩成人| 怡红院怡春院首页| 国产高清免费av在线| 精品免费av在线| 国产精品毛片一区二区在线看| 精品亚洲成a人在线观看| 国产精品污www在线观看| 在线视频一区二区三| 亚洲成人激情在线| 欧美在线视频播放| 日本一区二区三区免费看| 男女污污的视频| 久久久久黄色片| 午夜国产福利| 欧美日韩视频精品二区| 福利一区视频| 亚洲最黄网站| 日韩一区中文字幕| 亚洲精品久久7777777| 国产成人精品免费视频| 黄黄视频在线观看| 日韩精品无码一区二区三区久久久 | 成人av色在线观看| www.av片| 黑人巨大精品一区二区在线| 无码国产精品高潮久久99| 黄动漫网站在线观看| 久久婷婷五月综合色丁香| 亚洲精选国产| 一区免费观看视频| 精品国产乱码久久久久久老虎 | 精品亚洲一区二区三区在线播放| 欧美日韩第一视频| 欧美高清视频一区二区三区在线观看 | 成人在线爆射| 男人天堂网在线| 国产超碰精品| 午夜精品影院| 中文字幕一区二区视频| 亚洲欧美成人精品| 国产在线精品一区二区中文| 国产美女18xxxx免费视频| 欧美精品一二三四区| 九九热这里只有| 国产精品扒开腿做爽爽爽视频软件| 黄色成人av网站| 综合欧美亚洲日本| 夜夜嗨av一区二区三区免费区| 精品视频一区在线| 国产女人18毛片水真多18| 国产婷婷一区二区三区久久| 激情婷婷丁香| 亚洲码欧美码一区二区三区| 国产乱码精品一区二区三区av| 欧美日韩精品免费| 亚洲自拍中文字幕| 涩视频在线观看| 日本成人免费在线观看| 中出中文字幕| 黄色污污视频在线观看| 夜夜精品视频| 色综合视频一区二区三区高清| 91国内在线视频| 色综合av综合无码综合网站| 蜜臀精品一区二区三区| 日本粉色视频在线观看| 精品久久97| 国产欧美综合色| 欧美日韩福利在线观看| 久久久久久久久久久福利| 久久久蜜桃一区二区| 偷偷要 色偷偷| 久久亚州av| 亚洲欧洲av色图| 91产国在线观看动作片喷水| 国产v亚洲v天堂无码久久久 | 久操av在线| 久久福利影视| 91精品国产日韩91久久久久久| av色综合网| 精品欧美一区二区久久久| 国内国产区免费视频| 国产精品亚洲成在人线| 国产成人在线影院| 日韩在线观看av| 91成人在线观看喷潮教学| 国产尤物视频在线观看| 91网页在线观看| 久久国产日韩| 亚洲国产成人精品女人久久久 | 成人精品久久久| 在线观看国产免费视频| 欧美粗暴性video| 色综合.com| 久久精品欧美一区二区三区麻豆 | 精品国产91久久久久久| 91在线观看免费高清| 色欲av无码一区二区三区| 日日干夜夜草| 台湾色综合娱乐中文网| 亚洲一二三四在线| 99www免费人成精品| 一级黄色片网址| 4hu永久免费入口| 成人av资源电影网站| 欧美小视频在线| 久久精品国产理论片免费| 日韩乱码一区二区| 91伦理视频在线观看| 日韩精品国产精品| 亚洲欧洲黄色网| 大陆极品少妇内射aaaaa| 凸凹人妻人人澡人人添| 国产欧美在线观看免费| 亚洲视频图片小说| 福利视频久久| 欧美一二三区视频| 国产写真视频在线观看| 国产高清在线观看免费不卡| 欧美精品videossex88| 日本黄色动态图| 琪琪五月天综合婷婷| 自拍视频亚洲| 亚洲成人久久网| 国产午夜精品理论片a级探花| 毛片毛片毛片毛片毛片毛片| 免费观看的av| 91视频综合| 日韩小视频在线观看专区| 大片在线观看网站免费收看| 性中国xxx极品hd| 性高爱久久久久久久久| 亚洲欧美另类综合偷拍| 亚洲最大av网站| 粉嫩aⅴ一区二区三区| 欧美日韩在线资源| 国产suv一区二区三区88区| 久久久久久亚洲精品中文字幕| 日产精品久久久一区二区福利| 下面一进一出好爽视频| 黄在线观看在线播放720p| 亚洲经典一区| 亚洲精品视频网上网址在线观看| 在线观看免费成人av| 免费观看的成年网址| 亚洲二区三区不卡| 日韩av在线免费看| 国内自拍第二页| 成人三级av| 日韩国产欧美在线视频| 欧美丰满片xxx777| 欧美性生交大片| jizz在线观看| 久久久精品国产免大香伊| 亚洲综合中文字幕68页| 中文字幕乱码视频| 国产成年精品| 欧美三级一区二区| 成人久久久久久久久| 夜夜嗨yeyeh| 亚洲美女啪啪| 国内精品400部情侣激情| 久久嫩草捆绑紧缚| 五月婷婷视频在线观看| 国产精品高潮久久久久无| 欧美日韩在线播放一区二区| 色婷婷av一区二区三| 蜜桃精品wwwmitaows| 亚洲精品97久久| 亚洲视频在线播放免费| 全部免费毛片在线播放网站| www.亚洲免费av| 欧美日韩免费精品| 5g成人永久免费影院| 99久久视频| 欧美日韩福利在线观看| 国产盗摄x88av| 日韩性xxx| 欧美人伦禁忌dvd放荡欲情| 亚洲欧洲日本精品| 欧美日夜夜逼| 久久色.com| 亚洲高清资源综合久久精品| 日韩精品――中文字幕| 国产原创一区| 精品免费视频.| 手机在线成人av| 伊人电影在线观看| 亚洲妇熟xx妇色黄| 国产精品69页| 亚洲一区在线日韩在线深爱| 久久人人爽爽爽人久久久| 中文字幕剧情在线观看一区| 天堂资源最新版在线视频观看免费网| 日本在线不卡视频| 国产精品久久久久久久天堂第1集 国产精品久久久久久久免费大片 国产精品久久久久久久久婷婷 | 色欧美激情视频在线| 亚洲私人影院在线观看| 久草视频这里只有精品| 拍拍拍999自拍偷| 99久久久久免费精品国产| 色婷婷精品国产一区二区三区| 国产黄色免费看| 美女国产一区二区| 久久久久久欧美精品色一二三四| 国内一区二区三区精品视频| 美女国产一区| 国产综合色一区二区三区| 精品视频麻豆入口| 国内久久婷婷综合| 亚洲永久一区二区三区在线| 美女视频黄的免费| av中文在线资源库| 欧美丰满美乳xxx高潮www| 国产又粗又猛又色| 在线最新版中文在线| 欧美xxxxxxxx| 少妇被躁爽到高潮无码文| 亚洲狼人综合| 色狠狠久久aa北条麻妃| 久草热在线观看| 婷婷激情图片久久| 国产精品精品视频一区二区三区| 亚洲av成人精品毛片| 久久精品盗摄| 欧美一区观看| 国产网站av| 亚洲国产综合人成综合网站| 91亚洲一区二区| 欧美男男tv网站在线播放| 日韩激情av在线免费观看| 精品国产乱码一区二区| 青青草国产免费一区二区下载| 国产精品第一区| 中文字幕第17页| 国产成人女人毛片视频在线| 国产91久久婷婷一区二区| 欧美性xxxxx极品少妇| 成人免费a**址| 67194成人在线观看| 精品国产成人亚洲午夜福利| 视频一区在线免费看| 中文字幕av一区二区| 91黑人精品一区二区三区| 国产精品久久久久久久久久10秀| 91精品视频免费看| 午夜成年女人毛片免费观看| 91尤物视频在线观看| 人妻无码视频一区二区三区| 岛国成人毛片| 日韩精品视频在线| 国产情侣小视频| 亚洲第一区色| 一级日韩一区在线观看| 亚洲精品无码专区在线播放| 在线播放毛片| 亚洲国产精品二十页| 久久久九九九热| 91精品国产66| 欧美裸体xxxx极品少妇| 澳门永久av免费网站| av激情综合网| 国产精品天天av精麻传媒| 日本不卡1234视频| 中文字幕日韩精品在线| 亚洲精品久久久久久动漫器材一区| 日韩国产在线一| 男人插女人视频在线观看| 黄色动漫在线| 亚洲人成电影网站色xx| 丁香婷婷激情网| 蜜臀av性久久久久蜜臀av|