最近在下正在測試PXI-6602的PWM輸出,做為即時控制使用,但是程式一直有些問題出現,不知有經驗的各位先進,請不吝指導
在下即時控制的取樣時間有Ts=10ms 50ms 100ms 200ms等,PWM的週期為10~30ms,Duty Cycle為將來做為運算數值後即時動態控制輸出使用
整個架構迴圈到達我設定的時間時就送出PWM,這個部份是以time loop做,目前的程式中有兩個的問題是:
1.當while loop中的等待時間若為不設或是更低,輸出的PWM訊號就像被截斷般,無法送出完全的Duty cycle,
當等待時間設得過長時,訊號雖正常但會造成整個time loop的delay,即無法發揮real time的效用
2.另外此程式因為Idle State的關係,當Idle State為Low時,Duty cycle>=80%,會無法送出更高的訊號,
反之,Idle State設為High,Duty cycle<=20%時,當低於20%時,訊號無法在更低了,
用判斷式來判斷雖可解決,但在非輸出的時間設定High時會使其值一直在High time,
對於實際控制時怕造成不好的影響,不知道有否方法解決
上述兩個問題煩請了解的各位先進幫忙指導,謝謝
附上程式PWM_output.vi