多組 A/D輸入 有辦法做到同步?
|
||||
---|---|---|---|---|
新會員
|
如題, 因為每個ad轉換前需要經過一延遲時間取樣,會犧牲20us
所以在進行下一之腳位的ad轉換之前就會犧牲了20us+上一腳位轉換的時間! 請問有辦法把程式改寫成多組ad同時轉換嗎?? MAINLINE: call INITIAL MAINLOOP call AD_CONVERT call AD_CONVERT1 call Pwm Goto MAINLOOP ;********************* AD_CONVERT: BANKSEL ADCON0 MOVLW B'10000001' MOVWF ADCON0 CALL DLY BSF ADCON0,GO ;啟動AD轉換 AD_WAIT BTFSC ADCON0,GO GOTO AD_WAIT ; BANKSEL ADRESH MOVF ADRESH,W MOVWF AD_STATUS RETURN ;************************ AD_CONVERT1: BANKSEL ADCON0 MOVLW B'10000001' MOVWF ADCON0 CALL DLY BSF ADCON0,GO ;啟動AD轉換 AD_WAIT1 BTFSC ADCON0,GO GOTO AD_WAIT1 ; BANKSEL ADRESH MOVF ADRESH,W MOVWF AD_STATUS1 RETURN
發表於: 2006/11/12 11:51
|
|||
|
Re: portb輸出的問題
|
||||
---|---|---|---|---|
新會員
|
照您的方法
問題已克服 謝謝!
發表於: 2006/11/10 12:02
|
|||
|
portb輸出的問題
|
||||
---|---|---|---|---|
新會員
|
各位大哥大姐您好
我使用pic16f877a ra0類比輸入作ad轉換後 數值輸出到portb 並以led顯示 但portb的RB3/PGM一直顯示不出來 這是為什麼? 謝謝!
發表於: 2006/11/9 23:52
|
|||
|
請問回授的邏輯?
|
||||
---|---|---|---|---|
新會員
|
我是用pic16f877a
使用24bit浮點數運算 去運行state space x(k+1)=Ax(k)+Bu(k) Y(k)=Cx(k)+Du(k) u is defined as error 我們知道閉迴路 close-loop error=input-feedback 那麼當相減之後的數值error 難道就直接定義給u去運行嗎? 感覺好像怪怪的... 因為如果 feedback>input 那麼error就會發生欠位 這時候該怎樣處理這個error值? 是把error清為0嗎? 那如果input>feedback, error為正,難道就直接將error值帶入到state space運算嗎? 因為如果兩個很接近,相減後的值"error"可能會接近0, 那這樣不就等於沒送訊號給input "u(k)"了嗎? 請各位大哥大姐幫幫忙,謝謝!
發表於: 2006/11/7 23:32
|
|||
|
Re: Tad跟AD轉換時脈是在幹麼的...
|
||||
---|---|---|---|---|
新會員
|
請問, 我們在撰寫ad轉換程式時, 在轉換前所給予的等待時間
是否就是Tacq+2Tad, 不需要再把轉換10bit需要的時間(10Tad)加進去, 因為是系統轉換自然會耗掉的時間. 不過可以從 Ts=Tacq+2Tad+(10Tad+2Tad) 算出總共ad轉換從進入到轉換完成到下一刻類比訊號進入之前的總時間 其中 Tacq=類比訊號進入單晶片後,輸入adc電路之前,使其取樣訊號穩定,所需設定的時間,然後才送入adc電路 2Tad=每次完成ad轉換要進行下一次訊號擷取前,至少需要的延遲時間 請指點!
發表於: 2006/9/28 11:46
|
|||
|
Re: 關於PID控制的問題
|
||||
---|---|---|---|---|
新會員
|
請教各位先進:
在做 直流馬達 feedback 時, 要如何處理回授信號與控制命 令? 我們都希望兩者訊號作相減後, 可使得穩態誤差趨近於零, 但是可能是我觀念不對, 寫出來的程式也怪怪的! output =kp*ek2+ki*(ek1+ek2+...)+kd*(ek2-ek1) output=送至ccpr1l做pwm輸出 cmd=控制命令 encoder=回授信號 將馬達接上電流感測器或轉速計取其訊號回授給PIC做處理 請問程式應該這樣寫嗎? 判斷 輸入與回授信號相減之穩態誤差(ek)是否有借位的情況 若有借位則 decf cmd,f......... 以下是小弟從PIC16F87X微控制器原理與專題應用書中的'設計PID控制器"章節的程式修改的 但是跑出來的波形是 沒有 encoder回授的時候, cmd不管輸入多少, 最後pwm都會變成0xff全開, 即便是cmd無輸入,只要給pic電源,波形也是由0x00增加到0xff 請問這是怎麼回事? 那這樣的話 cmd不就失去了控制功能了嗎? 以下是我修改的程式, 請各位大大指點迷津! http://feedback.me.ccu.edu.tw/uploads/upfile/PID2.asm 與那本書中範例不同的地方是 1. 我以RA0當做cmd輸入, RA1當作encoder回授 2. 不是以中斷來寫 3. 馬達沒有正反轉, 沒有AB相分別, 只有轉與不轉
發表於: 2006/4/11 1:44
|
|||
|