Re: 如何量取pwm的duty?
|
||||
---|---|---|---|---|
版主
|
1uS 最好有硬體的輔助,可以考慮使用 Glue Logic or FPGA 做計數來抓取Duty Cycle 的時間再交給CPU計算。
或可以考慮用Timer1量取上升緣,Timer3則負責偵測下降緣,計算Timer1 的差即可。
發表於: 2006/6/9 10:04
|
|||
|
Re: 如何量取pwm的duty?
|
||||
---|---|---|---|---|
資深會員
|
若Fosc=40Mhz,則一個指令週期要0.1us,若要量1us,是不是要在10個指令週期內要完成,進入中斷再出中斷function,要花數個指令時間,其間還要清除中斷旗標,還要設 falling sdge trigger,那麼還有時間搬運capture值嗎?
發表於: 2006/6/7 21:08
|
|||
|
Re: 如何量取pwm的duty?
|
||||
---|---|---|---|---|
版主
|
量到 rising 後馬上將 Capture Mode 設為 falling sdge trigger,falling count value - rising count value 就可以了。
發表於: 2006/6/7 16:04
|
|||
|
Re: 如何量取pwm的duty?
|
||||
---|---|---|---|---|
版主
|
再看清楚一下 Cature 的架構,改變CCPCON<3:0> 的設定就可以量取上昇緣至下降緣的週期了。
發表於: 2006/4/3 10:17
|
|||
|
Re: 如何量取pwm的duty?
|
||||
---|---|---|---|---|
資深會員
|
版主你所說的上述方法好像只是量週期的,而我需要量脈波寬度,不知有沒方法量?
發表於: 2006/3/31 16:45
|
|||
|
Re: 如何量取pwm的duty?
|
||||
---|---|---|---|---|
版主
|
可以考慮用 Capture Mode 來量取輸入的週期。因為輸入可小到 1uS,建議使用 1/16 的 Prescaler 先除 16 後在量測。
設定每個上升緣時就 capture 輸入信號的週期並產生中斷,將這次 capture 所抓的計數值減去上次所抓的計數值所得到的插成以Timer1的基準計數時間後再向右移四位(除16) 就可以了。 建議PIC18F452以40MHz速度執行,這樣比較能算出較短的週期。
發表於: 2006/3/28 14:35
|
|||
|
如何量取pwm的duty?
|
||||
---|---|---|---|---|
資深會員
|
各位先進:
現有一個外部pwm訊號,週期為1msec,duty從1usec~999usec,小弟想用18f258的ccp腳位來量此pwm的脈波寬度,請問要如何進行?
發表於: 2006/3/27 21:01
|
|||
|