Board logo

標題: 請問有關ARDUINO訊號脈波的程式寫法? [打印本頁]

作者: vurilate    時間: 2013-10-21 00:10     標題: 請問有關ARDUINO訊號脈波的程式寫法?

時間點     T1        T2                       T3        T4
                  ________                           _______
                  |            |                           |           |
                  |            |                           |           |
__________|            |_______________|           |________________

請問各位如上圖的訊號的我要如何得到T1與T3的時間間距??

我試過了 pulsein (PIN2,HIGH)  與  millis() 都不行
因為我要連續讀取T1與T3去做計算period,
我用pulsein 函數, T1與T3竟然是一樣!!

請問這應該要如何寫才可以正確地讀到T1與T3的時間值??

                          先 謝謝各位的回答了
作者: minki    時間: 2013-10-21 00:13

時間點     T1        T2                       T3        T4
                  ________                ...
vurilate 發表於 2013-10-21 00:10

T1 INT start TIMER
T2 INT STOP TIMER
作者: skybread    時間: 2013-10-21 08:43

其實呢個就係Arduino IDE既壞處
用佢官方果D簡易版Code
一定會有0.幾ms既誤差
作者: KSC    時間: 2013-10-21 10:13

本帖最後由 KSC 於 2013-10-21 10:16 編輯

你要用hardware interrupt 做
1)確認你要測的訊號最慢和最快的規格,精度的要求等
2)選擇用那個clock divider
3)開rising trigger interrupt,讀時間

google "interrupt period measure arduino"
作者: Charcoal99    時間: 2013-10-21 10:15

pulseIn(PINx, HIGH)會等待引腳變為HIGH,開始計時,再等待引腳變為LOW並停止計時。
返回脈衝的長度,單位微秒。

所以你量度的只是 T2-T1 及 T4-T3 的脈衝高值寛度時間差,而不是 T3-T1 的週期值。
作者: KSC    時間: 2013-10-21 17:43

http://interface.khm.de/index.ph ... easurement-library/
作者: minki    時間: 2013-10-21 20:58

其實呢個就係Arduino IDE既壞處
用佢官方果D簡易版Code
一定會有0.幾ms既誤差
skybread 發表於 2013-10-21 08:43

所以一向都SUGGEST有心玩都係正正經經用返"正常"版
作者: skybread    時間: 2013-10-22 18:20

所以一向都SUGGEST有心玩都係正正經經用返"正常"版
minki 發表於 2013-10-21 20:58

有一排我用返AVR Studio寫Arduino,
Code係煩, 但D誤差低好多
作者: minki    時間: 2013-10-22 19:27

有一排我用返AVR Studio寫Arduino,
Code係煩, 但D誤差低好多
skybread 發表於 2013-10-22 18:20

係KA....
作者: vurilate    時間: 2013-10-25 08:34

回復 4# KSC


    謝謝  我會試試看你的方法
作者: vurilate    時間: 2013-10-25 08:36

回復 5# Charcoal99


    謝謝,其實T1到T3是脈搏訊號,所以是週期沒錯
作者: vurilate    時間: 2013-11-3 10:33

回復 4# KSC


    謝謝  我會試看看的





歡迎光臨 電腦領域 HKEPC Hardware (https://h2.hkepc.com/forum/) Powered by Discuz! 7.2