微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于SP1010-LPC213X-ARM实验板的SPWM实验

基于SP1010-LPC213X-ARM实验板的SPWM实验

时间:10-25 来源:互联网 点击:
实际工程应用的逆变器常采用SPWM技术来实现,以前常用硬件来产生三角波和正弦波进行比较来产生SPWM信号,但常常不稳定,而用嵌入式ARM来产生SPWM信号就非常容易,几乎不用增加任何附加硬件产生调制正弦信号,而由LPC2132的内置PWM功能就能实现。下面是实验程序,已在SP1010-LPC213X-ARM实验开发板调试通过,供参考。

来源:[url=http://www.eechina.com/www.supermcu.com]www.supermcu.com[/url] (西谱电子)


/*
      利用LPC2132器件的PWM功能模拟产生正弦信号由P0.21引脚的PWM5功能引脚输出
      实验平台:(1).SP1010-LPC213X-ARM实验开发板,其详细介绍地址:[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
      更多内容:[url=http://www.supermcu.com/]http://www.supermcu.com[/url] (西谱电子)
*/
#include <LPC213X.H>
#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的周期值,产生Fpwm = 1KHz ---
  PWMMR5 = (PWMMR0 + 1) * 50 / 100 - 1;               //--- 配置PWM5的占空比,占空比= 30 % ---
  PWMLER = (1 << 5) | (1 << 0);                     //--- 锁存PWM5的周期和占空比数值 ---
  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);
  }
    }
}
/*
      更多内容:[url=http://www.supermcu.com/]http://www.supermcu.com[/url] (西谱电子)
      SP1010-LPC213X-ARM实验开发板详细介绍地址:[url=http://www.supermcu.com/p_info.asp?id=288]http://www.supermcu.com/p_info.asp?id=288[/url])
*/

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top