菜鳥新學(xué)的DSPIC30F2010,在使用PWM輸出口做逆變電源,使用雙更新模式,PWM口的初始化如下, //PWM功能初始化 void Init_PWM( void ) { PTMR = 0x0000; //PWM時(shí)基寄存器PTPER = dLoopInTcy; // 設(shè)定PWM的頻率 PWMCON1 = 0x0077; // 使能PWM口 PTCON = 0x8003; //,雙邊更新,時(shí)基為Tcy PWMCON2 = 0x0004; //使能占空比立即更新 DTCON1 =0x0000; PDC1 = Pwm_min; //初始化占空比 PDC2 = Pwm_min; OVDCON = 0x3F3F; //開始由PWM發(fā)生器控制FLTACON=0x0003;//故障引腳為低電平時(shí),6路PWM輸出無(wú)效SEVTCMP = 0; // 0 不由PWM啟動(dòng)AD轉(zhuǎn)換SEVTCMPbits.SEVTDIR = 0; //=0 ,特殊事件觸發(fā)信號(hào)將在PWM 時(shí)基的向上計(jì)數(shù)周期產(chǎn)生IPC9bits.PWMIP = 6;//PWM中斷優(yōu)先級(jí)為6級(jí)IFS2bits.PWMIF = 0; //清PWM中斷標(biāo)志位IEC2bits.PWMIE = 1; // 使能PWM 中斷IPC10bits.FLTAIP = 7 ;//設(shè)置過(guò)流故障中斷為7級(jí)中斷 IFS2bits.FLTAIF = 0;// 故障中斷標(biāo)志清零.IEC2bits.FLTAIE = 1;// 使能故障中斷 A } 想在一個(gè)PWM周期內(nèi)占空比更新兩次,可從濾波口輸出看不出更新兩次,只看到一次變化,但實(shí)際計(jì)算的時(shí)候確實(shí)是算了兩次,也用了兩次,只是不知道別人的怎么能看到兩次,下圖是從濾波口看到的一個(gè)PWM周期的對(duì)應(yīng)變化正弦波,1是別人的程序,明顯看到一個(gè)PWM波內(nèi)有兩個(gè)變化,2是自己的程序,一個(gè)PWM周期只看到一個(gè)變化 ,各位說(shuō)說(shuō)如何實(shí)現(xiàn)圖1的兩次變化的形式呢?