Re: [問題] 關於advantech擷取卡與matlab的一些問題已回收

看板MATLAB作者 (gg)時間14年前 (2010/08/12 11:45), 編輯推噓2(204)
留言6則, 5人參與, 最新討論串2/3 (看更多)
由於不熟悉回文不小心po了篇空白文,先在這裡向版主致歉! 再來就是感謝APP大和wave大的熱心解答 我採用了app大說的修改取樣頻率的指令 我先貼上我的程式 function [voicedata,fs]=microphone(duration,fs) ai= analoginput('advantech',0); addchannel(ai,1); ai.Channel.InputRange = [0 10]; set(ai,'SampleRate',fs) ActualRate = get(ai,'SampleRate'); set(ai,'SamplesPerTrigger',duration*ActualRate) set(ai,'TriggerType','Manual') blocksize = get(ai,'SamplesPerTrigger'); fs = ActualRate; start(ai) trigger(ai) voicedata = (getdata(ai))'; 這個程式在之前執行一直是失敗的 他的失敗原因如下: ??? A timeout occurred during GETDATA. Error in ==> analoginput.getdata at 196 varargout{1}=getdata(uddobj,samples,dataformat); Error in ==> microphone at 18 voicedata = (getdata(ai))'; 但是很神奇的是,在今天,我又重新執行了這行程式 結果他居然可以成功! 我分別使用了取樣頻率500,1000,10000 試驗了好幾次都有讀到值,雖然讀到的值振幅好像很大,但至少是讀到了! 但重點來了~在試了大約四五次之後,又出現上面的錯誤指令了! 請問那行錯誤指令是什麼意思啊? 為什麼一下子可以一下子卻不行呢? 煩請會的大大能幫忙解答我,感激不盡! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.26.129

08/12 11:47, , 1F
此卡根據說明書上寫最快可以到1M的取樣頻率
08/12 11:47, 1F

08/12 14:35, , 2F
....他有沒有status或是synchronization的問題?
08/12 14:35, 2F

08/12 14:35, , 3F
他在執行GETDATA這個動作之後超過某個時間都沒有拿到資料..
08/12 14:35, 3F

08/12 16:51, , 4F
加個 wait(obj,waittime)試看看 !
08/12 16:51, 4F

08/12 16:55, , 5F
空白文你可以自D吧
08/12 16:55, 5F

08/14 13:13, , 6F
多加行指令 確定擷取停止後再開始getdata
08/14 13:13, 6F
文章代碼(AID): #1COsveP7 (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1COsveP7 (MATLAB)