Re: 請問pwm問題
|
||||
---|---|---|---|---|
資深會員
|
RETFIE 之前 忘記清掉 TMR1IF ; ╮( ̄﹏ ̄)╭
發表於: 2009/8/13 1:24
|
|||
|
Re: 請問pwm問題
|
||||
---|---|---|---|---|
新會員
|
8 bit TIMER 不能用 , 那 16 bit 呢 ?
不要太鑽牛角尖 , 山不轉路轉,,,,,,,,, ISR: IF PWMOUT = 1 . BCF PWMOUT . CHANGE TO OFF_TIMER_VALUE . RETFIE ELSE . BSF PWMOUT . CHANGE TO ON_TIMER_VALUE . RETFIE ENDIF[/quote] ~~~那要如何改成16BIT 的TIMER阿 要用PWM不是只能用TIMER2 媽????
發表於: 2009/8/12 16:10
|
|||
|
Re: 請問pwm問題
|
||||
---|---|---|---|---|
中級會員
|
謝謝大大的提示,我會再想想其他辦法
感謝您的回覆
發表於: 2009/6/22 14:41
|
|||
|
Re: 請問pwm問題
|
||||
---|---|---|---|---|
資深會員
|
參照:
8 bit TIMER 不能用 , 那 16 bit 呢 ? 不要太鑽牛角尖 , 山不轉路轉,,,,,,,,, ISR: IF PWMOUT = 1 . BCF PWMOUT . CHANGE TO OFF_TIMER_VALUE . RETFIE ELSE . BSF PWMOUT . CHANGE TO ON_TIMER_VALUE . RETFIE ENDIF
發表於: 2009/6/21 1:03
Edited by Beee on 2009年06月21日 02:30:29
|
|||
|
Re: 請問pwm問題
|
||||
---|---|---|---|---|
資深會員
|
如果是RC馬達的話,不太需要用PWM。只要固定輸出脈波就可以了。脈波週期是20ms,但實際動作不用這樣準,以我用過Futaba 3001來說差個1-2ms都不會有影響。所以程式可以做成:
1.設定Timer中斷,啟動Timer,設定暫存器中斷時間為1ch的脈波寬,下次中斷發生時,設定暫存器中斷時間為2ch的脈波寬,其餘以此類推。下次中斷時間為20ms-所有channel用掉的時間。 3.全部通道都做完後,停止Timer中斷。清除旗標。 這樣的好處可以兼顧uC執行在較高的速度,又可以輸出慢速的RC馬達命令,發脈波的中間,uC還能作其他的事情。不過參數要花點時間調一下,效果就很不錯了。
發表於: 2009/6/19 20:55
|
|||
不要問我哪裡來,我只是個流浪天涯的工程師
|
||||
|
Re: 請問pwm問題
|
||||
---|---|---|---|---|
中級會員
|
是的,感謝前輩分享,我的問題就是在這裡
如前輩所說,改變FOSE那麼是不是代表我必須改變外部晶體頻率呢?那這麼做是不是會影響到MCU程式運行的速度呢? 感謝所有前輩的指點!
發表於: 2009/6/19 20:49
|
|||
|
Re: 請問pwm問題
|
||||
---|---|---|---|---|
版主
|
算一下 PWM 的最低時間後用公式反推回去算出所需的系統震盪頻率 Fosc。看起來你只有降低 Fosc 了。
發表於: 2009/6/19 17:52
|
|||
|
Re: 請問pwm問題
|
||||
---|---|---|---|---|
新會員
|
參照:
nicecookie您好~ 小弟碰PIC一陣子,有去聽過幾堂課,但還有很多不懂的~ 我是要控制伺服器(模型) 經視波器測試出來,伺服器的動作範圍的脈波寬是1000us~2000us 所以算回來....至少要小於500Hz....(希望能達到50~450之間) 用W401的練習3-2改OpenTimer2(T2_PS_1_16 & T2_POST_1_16); 可是測試出來還是有900多Hz... 這樣子要怎麼樣作會比較好呢?
發表於: 2009/6/19 17:31
|
|||
|
Re: 請問pwm問題
|
||||
---|---|---|---|---|
資深會員
|
這應該是找不到範例的吧
就設好中斷時間 然後每次執行中斷就把pin腳反向 就好啦 稍微想一下也就理解了 應該是很簡單吧 當然如果要調duty就複雜點 且解析度也不大
發表於: 2009/6/19 16:35
|
|||
|