久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

只需一步,快速開始

搜索
查看: 4133|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

arduino delay堵塞延時(shí)問題,大家進(jìn)來看看吧,哭唧唧

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
  1. #include <Metro.h>
復(fù)制代碼
  arduino單片機(jī)驅(qū)動(dòng)步進(jìn)電機(jī),同時(shí)通過單片機(jī)的軟串口讀取一臺(tái)設(shè)備的數(shù)據(jù),
   因?yàn)檫@兩個(gè)任務(wù)要同時(shí)進(jìn)行,每個(gè)任務(wù)都有delay,delay堵塞影響其它任務(wù),所以我使用了多線程。
  嘗試過scoop庫,chrono庫定義節(jié)拍,Mstimer中斷,只有這個(gè)metro庫初步調(diào)試成功,電機(jī)可正常運(yùn)行,但產(chǎn)生脈沖的時(shí)間6.4s還是影響了讀取數(shù)據(jù),本想500毫秒讀取一次數(shù)據(jù),結(jié)果7秒一次。

附幾個(gè)疑問:
1.使用單片機(jī)的軟串口庫讀數(shù)據(jù),無論設(shè)置采樣周期多少,都會(huì)加上1秒,這是為何?詳見我求助帖子
2.tone函數(shù)產(chǎn)生脈沖   tone(pin, frequency, duration),第三個(gè)參數(shù)設(shè)置周期,為何要再加延時(shí)才生效?
  1. tone(7, 440, 200);  //7號(hào)引腳發(fā)聲200毫秒 ,440HZ
  2. delay(200);
復(fù)制代碼
這個(gè)delay函數(shù)卡了我一個(gè)星期了,我這個(gè)菜雞崩潰了。馬上去學(xué)中斷,聽說這個(gè)也是一種方法。


< 刷到這個(gè)帖子大家隨便留言,你的任何留言都是對(duì)我的鼓勵(lì),十分感謝大家指導(dǎo)。 (鞠躬)>






分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:277550 發(fā)表于 2021-5-19 09:20 | 只看該作者
要做到高精度,就不是那么簡(jiǎn)單的了。 中斷可以減少延時(shí)帶來的壞處。
回復(fù)

使用道具 舉報(bào)

板凳
ID:844772 發(fā)表于 2021-5-19 11:07 | 只看該作者
arduino的delay()和軟串口應(yīng)該都用了time0,也就是說你要是使用軟串口等中斷服務(wù),就別使用delay(),這也不麻煩,可以用循環(huán)替代。
回復(fù)

使用道具 舉報(bào)

地板
ID:894800 發(fā)表于 2021-5-19 12:35 | 只看該作者
devcang 發(fā)表于 2021-5-19 09:20
要做到高精度,就不是那么簡(jiǎn)單的了。 中斷可以減少延時(shí)帶來的壞處。

請(qǐng)問中斷是通過attachInterrupt()函數(shù)實(shí)現(xiàn)嗎?還是通過定時(shí)器
回復(fù)

使用道具 舉報(bào)

5#
ID:894800 發(fā)表于 2021-5-19 12:39 | 只看該作者
程序在這里,粗心的我
  1. [em01]
  2. #include <Metro.h>
  3. #include <SoftwareSerial.h>      
  4. SoftwareSerial DLSerial(2, 3); // 軟串口 RX(D2), TX(D3) 紅
  5. String stringOne="";//存儲(chǔ)接收的“+5.5019e+06,BIN00”      

  6. Metro blink1Metro = Metro(1000);   //把 blink1Metro 實(shí)例化 Metro 對(duì)象 ,并設(shè)置間隔時(shí)間
  7. Metro blink2Metro = Metro(1000);     //把 blink2Metro 實(shí)例化 Metro 對(duì)象 ,并設(shè)置間隔時(shí)間

  8. void setup(){
  9. DLSerial.begin(38400); //設(shè)備波特率38400     
  10. Serial.begin(9600) ;//默認(rèn)串口波特率9600   
  11. pinMode(7,OUTPUT); // Step   
  12. pinMode(6,OUTPUT); // Dir  方向
  13. }

  14. void loop(){

  15.   if(blink1Metro.check()){  //檢查blink1Metro間隔(我的理解是計(jì)時(shí)器每隔100毫秒就會(huì)返回true,就執(zhí)行以下程序)
  16.   digitalWrite(6,HIGH); // 方向拉高     
  17.     for(int x = 0; x < 6400; x++) // Loop 2000 times     //6400  
  18.     {     
  19.         digitalWrite(7,HIGH); //  
  20.      delayMicroseconds(250); // Wait   ms  
  21.     digitalWrite(7,LOW); //  
  22.      delayMicroseconds(250); // Wait  ms  250 2000HZ 周期0.5ms
  23.      //正轉(zhuǎn)   
  24.     }  
  25.       //delay(1000); //  
  26.             
  27.      digitalWrite(6,LOW); // Set Dir high      
  28.     for(int x = 0; x < 6400; x++) // Loop 6400 times   
  29.     {     
  30.         digitalWrite(7,HIGH); //  
  31.      delayMicroseconds(250); // Wait  ms     
  32.     digitalWrite(7,LOW); //  
  33.      delayMicroseconds(250); // Wait   ms   
  34.     }  
  35.      // delay(1000);
  36. }

  37.   
  38.   if(blink2Metro.check()){  
  39.     int val=analogRead(0);//讀取模擬接口0 的值,并將其賦給val
  40. Serial.println(val);//顯示出val 的值 Serial.println(val,DEC);     

  41. DLSerial.write("fetch?"); //發(fā)送字節(jié)數(shù)據(jù)      
  42. delay(500); //延時(shí)500ms   
  43. if (DLSerial.available()>0) //如果緩存中有接收到的數(shù)據(jù)     
  44. {      
  45.     String stringOne = DLSerial.readString(); //讀取軟串口數(shù)據(jù)賦給字符串stringOne      
  46.     Serial.print(stringOne);  //通過串口發(fā)到PC      
  47. }         
  48.   }
  49. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久久久久毛片 | 久久99精品久久久久蜜桃tv | 久久lu | 国产一区二区三区在线免费观看 | 午夜视频一区二区 | 日韩在线视频免费观看 | 日本一区二区三区在线观看 | 精品真实国产乱文在线 | 久久久噜噜噜www成人网 | 夜夜草| 久久久久久久久久久国产 | 国产精品久久久久久婷婷天堂 | 黄免费看| 久久国产精品一区二区三区 | 色综合99 | 天天综合网天天综合 | 一级黄色裸片 | 在线看片国产精品 | 国产成人网| av网站在线看| 亚洲欧美一区在线 | 亚洲成av人影片在线观看 | 在线免费观看日本视频 | 国产精品免费视频一区 | 久久精品综合 | 欧美精品一二三区 | 国精品一区二区 | 精品亚洲一区二区三区四区五区 | 国产精品免费看 | 久久久av| 免费一区二区三区 | 国产一区二区精品在线观看 | 精品久久香蕉国产线看观看亚洲 | 久久99精品久久久久久 | 欧美一区二区三区在线播放 | 日韩欧美国产成人一区二区 | 欧美日本一区二区 | 中文字幕不卡视频在线观看 | 国产乱码精品一区二区三区五月婷 | 国产精品视频久久 | 免费午夜视频在线观看 |