Re: 使用SetDCPWM()發現問題?
|
||||
---|---|---|---|---|
高級會員
|
那我了解了~~~謝謝
發表於: 2005/2/4 12:38
|
|||
|
Re: 使用SetDCPWM()發現問題?
|
||||
---|---|---|---|---|
資深會員
|
PIC的PWM是用計數的
輸出高準位開始計數一段時間後 改為低準位再開始計數 一直重複 所以你看起來會有PWM的現象 你停止模擬後 程式停止 他如果在高準位狀態時就會一直維持住 因為計數器停止而沒把他拉到低準位 所以你看到的就是100% 同理,如果停止時他在低準位 你看到的就是0%
發表於: 2005/2/4 8:40
|
|||
|
Re: 使用SetDCPWM()發現問題?
|
||||
---|---|---|---|---|
高級會員
|
當我結束模擬時,設定的pwm輸出腳仍然輸出高電位,不是應該輸出為0嗎?
發表於: 2005/2/3 16:00
|
|||
|
Re: 使用SetDCPWM()發現問題?
|
||||
---|---|---|---|---|
版主
|
不懂為什麼是有時候??
可否測試一下教育訓練裡的 W401 workshop 裡的練習 3-2 它的duty cycle 就可以從 0 ~ 1023
發表於: 2005/2/3 15:38
|
|||
|
Re: 使用SetDCPWM()發現問題?
|
||||
---|---|---|---|---|
高級會員
|
您的意思是說OpenPWM1(0xff)才能設SetDCPWM1(1023)嗎?
但我用示波器量,有時候還是會用這種情況發生,是硬體設定的問題嗎
發表於: 2005/2/3 14:38
|
|||
|
使用SetDCPWM()發現問題?
|
||||
---|---|---|---|---|
高級會員
|
使用pwm函數時,做icd2模擬發現,當SetDCPWM1(n)裡的n=200時,duty cycle=5V*(200/1024),但設太高(大約300~1023),停止模擬後pwm仍然維持100%的佔空比,以下是我的程式,各位可以幫我除錯一下嗎.....
void main(void) { InitializeTMR2( ); InitializePWM1( ); while(1) { SetDCPWM1(100); } } //************************************************ //********* Function: InitializePWM1 ******** //************************************************ void InitializePWM1(void) { OpenPWM1(0x88); } //************************************************ //*********Function: InitializeTimer2******* //************************************************ void InitializeTMR2(void) { OpenTimer2(T2_PS_1_4 & T2_POST_1_16); }
發表於: 2005/2/2 23:19
|
|||
|