Browsing this Thread:
1 Anonymous Users
Topic options
View mode
舊的在前
Re: pwm內建模組的問題
初級會員
Joined
: 2008/6/25 22:00最後登入時間
: 2011/8/22 19:25
Group:
註冊會員
Level : 3
HP : 0 / 63
MP : 7 / 2999
EXP : 52
嗯嗯,不過第2個問題還是會出現,PTMR<15>沒顯示,但硬體有在下數(TEST有顯示)。
發表於: 2009/11/10 18:06
Re: pwm內建模組的問題
資深會員
Joined
: 2004/6/3 8:44最後登入時間
: 2009/12/7 13:37
From 3年3班
Group:
註冊會員
Level : 26
HP : 0 / 637
MP : 292 / 37842
EXP : 49
if(PTMRbits.PTDIR=1) // X if(PTMRbits.PTDIR==1) // O
發表於: 2009/11/9 23:14
pwm內建模組的問題
初級會員
Joined
: 2008/6/25 22:00最後登入時間
: 2011/8/22 19:25
Group:
註冊會員
Level : 3
HP : 0 / 63
MP : 7 / 2999
EXP : 52
請教幾個問題 1.在dspic30f4011的P.95 的 15.4 有提到若PTDIR=1,則向下計數,反之向上。但我用Degbugger來觀察PTMR register, 發現PTDIR一直都為0。 2.原先以為是chip速度太快,導致我沒看到,因此我用if(PTMRbits.PTDIR=1),但PTMR就不會計數了(圖一)。 後來拿掉if(PTMRbits.PTDIR=1)就可計數,但從watch表看到TEST(0x8008)和PTMR(0x0008)值不相同,那這代表下屬嗎? (圖二)。 3.在做三相SPWM是否能直接用PTMR、PTPER和PDCx來摸擬出一個三角波,還是要另外建一個三角波來與我的sin table做比較。(三角波頻率是可改變) 多謝!多謝! #define __dsPIC30F4011__ #include <p30F4011.h> #include <pwm.h> // 將pwm函式的原型宣告檔案含入 #include <timer.h> #define FCY 7372800 * 2 // 因為使用頻率為將外部 7.3728 MHz * 8 的模式 , 每一指令週期需 4 個 clock // 所以 FCY = (7.3728 * 8 / 4 ) MHz = 7372800* 2 void Init_MCPWM(void); _FOSC(CSW_FSCM_OFF & XT_PLL8); //XT with 8xPLL oscillator, Failsafe clock off _FWDT(WDT_OFF); //Watchdog timer disabled _FBORPOR(PBOR_OFF & MCLR_EN); //Brown-out reset disabled, MCLR reset enabled _FGS(CODE_PROT_OFF); //Code protect disabled int main(void) { int TEST=1; Init_MCPWM(); while(1) { // if(PTMRbits.PTDIR=1) TEST=PTMR; // PDC1=0x0005; } } void Init_MCPWM(void) { unsigned int config; unsigned int period; unsigned int sptime; unsigned int config1; unsigned int config2; unsigned int config3; unsigned int dutycyclereg; unsigned int dutycycle; unsigned char updatedisable; config = (PWM_INT_DIS & PWM_FLTA_DIS_INT & PWM_INT_PR1 & PWM_FLTA_INT_PR0); ConfigIntMCPWM( config ); dutycyclereg = 1; dutycycle = 0x4fff; updatedisable = 0; SetDCMCPWM(dutycyclereg,dutycycle,updatedisable); period =0X4fff; sptime = 0x0250; config1 = (PWM_EN & PWM_IDLE_STOP & PWM_OP_SCALE1 & PWM_IPCLK_SCALE64 & PWM_MOD_UPDN ); // config2 = (PWM_MOD1_COMP & PWM_PDIS3H & PWM_PDIS2H & PWM_PEN1H & PWM_PDIS3L & PWM_PDIS2L & PWM_PEN1L); config3 = (PWM_SEVOPS1 & PWM_OSYNC_PWM & PWM_UEN); OpenMCPWM(period,sptime,config1,config2,config3); }
Attach file :
(0.00 KB) (0.00 KB)
發表於: 2009/11/9 23:10
You can view topic.
你 不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.