作者: 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 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
所以一向都SUGGEST有心玩都係正正經經用返"正常"版
作者: skybread 時間: 2013-10-22 18:20
有一排我用返AVR Studio寫Arduino,
Code係煩, 但D誤差低好多
作者: minki 時間: 2013-10-22 19:27
係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
謝謝 我會試看看的

