實(shí)際工程應(yīng)用的逆變器常采用SPWM技術(shù)來(lái)實(shí)現(xiàn),以前常用硬件來(lái)產(chǎn)生三角波和正弦波進(jìn)行比較來(lái)產(chǎn)生SPWM信號(hào),但常常不穩(wěn)定,而用嵌入式ARM來(lái)產(chǎn)生SPWM信號(hào)就非常容易,幾乎不用增加任何附加硬件產(chǎn)生調(diào)制正弦信號(hào),而由LPC2132的內(nèi)置PWM功能就能實(shí)現(xiàn)。下面是實(shí)驗(yàn)程序,已在SP1010-LPC213X-ARM實(shí)驗(yàn)開(kāi)發(fā)板調(diào)試通過(guò),供參考。 來(lái)源:[url=http://www.54549.cn/www.supermcu.com]www.supermcu.com[/url] (西譜電子) /* 利用LPC2132器件的PWM功能模擬產(chǎn)生正弦信號(hào)由P0.21引腳的PWM5功能引腳輸出 實(shí)驗(yàn)平臺(tái):(1).SP1010-LPC213X-ARM實(shí)驗(yàn)開(kāi)發(fā)板,其詳細(xì)介紹地址:[url=http://www.supermcu.com/p_info.asp?id=288]http://www.supermcu.com/p_info.asp?id=288[/url]) (2).示波器,探頭接到P0.21引腳上 FOSC=12MHz,FCCLK=60MHz,FPCLK=FCCLK/4 更多內(nèi)容:[url=http://www.supermcu.com/]http://www.supermcu.com[/url] (西譜電子) */ #include #define FCCLK 60000000void ARM_PWM_Init(void) { PINSEL0 = 0; PINSEL1 = (PINSEL1 & (~(3 << 10))) | (1 << 10); //--- 配置為PWM5引腳輸出功能 --- PWMPR = 0; PWMPC = 0; PWMTC = 0; PWMMCR = 3; PWMPCR = (1 << 13); //--- 使能PWM5引腳功能 --- PWMMR0 = FCCLK / (4 * 100000) - 1; //--- 配置PWM5的周期值,產(chǎn)生Fpwm = 1KHz --- PWMMR5 = (PWMMR0 + 1) * 50 / 100 - 1; //--- 配置PWM5的占空比,占空比= 30 % --- PWMLER = (1 << 5) | (1 << 0); //--- 鎖存PWM5的周期和占空比數(shù)值 --- PWMTCR = 9; //--- 使能PWM5和PWM0 --- }void time_dly(unsigned long dly) { unsigned long i; do { i = 600; do { } while(-- i); } while(-- dly); } int main(void) { long i,j; ARM_PWM_Init(); while(1) { for(i=0;i<200;i++) { j = i; if (j > 100) j = 200 - i; PWMMR0 = FCCLK / (4 * 100000) - 1; PWMMR5 = j; PWMLER = (1 << 5) | (1 << 0); time_dly(20); } } } /* 更多內(nèi)容:[url=http://www.supermcu.com/]http://www.supermcu.com[/url] (西譜電子) SP1010-LPC213X-ARM實(shí)驗(yàn)開(kāi)發(fā)板詳細(xì)介紹地址:[url=http://www.supermcu.com/p_info.asp?id=288]http://www.supermcu.com/p_info.asp?id=288[/url]) */ |