⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2808pwm1.0.c

📁 2808程序
💻 C
字号:
//###########################################################################
// $TI Release: DSP280x Header Files V1.60 $
// $Release Date: December 3, 2007 $
//###########################################################################

#include "DSP280x_Device.h"    
void InitEPwm1Example(void);
void  InitEPwm1Gpio();
void main(void)
{
   InitSysCtrl();//初始化系统控制器
   InitEPwm1Gpio();//IO初始化
   DINT;//关闭总中断,清中断标志
   InitPieCtrl();
   IER = 0x0000;
   IFR = 0x0000;
   InitPieVectTable();
   EALLOW;
   SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;//关闭TB时钟
   EDIS;
   InitEPwm1Example();    
   EALLOW;
   SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;//开TB时钟
   EDIS;
   }
void  InitEPwm1Gpio()
{
   EALLOW;
   GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1;  // 将GPIO0和GPIO1设置为EWPM端口,并设置为输出
   GpioCtrlRegs.GPADIR.bit.GPIO0 = 1;   //  
   GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 1;  // 
   GpioCtrlRegs.GPADIR.bit.GPIO1 = 1;
   EDIS;
   }
void InitEPwm1Example()
{
   
   EPwm1Regs.TBPRD = 8000;            // 设置定时器周期
   EPwm1Regs.TBPHS.all = 0;           // 相位值为0
   EPwm1Regs.TBCTR = 0x0000;         // 计数器清0
   EPwm1Regs.TBCTL.bit.CTRMODE = 0x2; //增减计数模式
   EPwm1Regs.TBCTL.bit.PHSEN = 0;        // 不装载相位值
   EPwm1Regs.TBCTL.bit.HSPCLKDIV = 0x0;       // TB时钟为系统时钟
   EPwm1Regs.TBCTL.bit.CLKDIV = 0x0;

  // EPwm1Regs.CMPCTL.bit.SHDWAMODE = 0;    // Load registers every ZERO
   //EPwm1Regs.CMPCTL.bit.SHDWBMODE = 0;
   //EPwm1Regs.CMPCTL.bit.LOADAMODE = 0x0;
   //EPwm1Regs.CMPCTL.bit.LOADBMODE = 0x0;   
   EPwm1Regs.CMPA.half.CMPA =4000;         //比较器A的值为4000
   EPwm1Regs.AQCTLA.bit.CAU = 0x2;        // 当时基计数器的值等于比较器A的值,且计数器处于增计数时将EPWMxA的输出置为 高                                                    EPwm1Regs.AQCTLA.bit.CAD = 0x1; //当时基计数器的值等于比较器A的值,且计数器处于减计数时将EPWMxA的输出置为 低      
   EPwm1Regs.AQCTLB.bit.CAD = 0x1; //当时基计数器的值等于比较器A的值时且处于减计数时将EPWMxB的输出置为 低 
   EPwm1Regs.AQCTLB.bit.CAU = 0x2;   //  当时基计数器的值等于比较器A的值,且计数器处于增计数时将EPWMxB的输出置为 高 
   EPwm1Regs.DBCTL.bit.IN_MODE = 0x0;//从动作限定模块出来的EPWMxA作为上升沿和下降沿延迟的输入   
   EPwm1Regs.DBCTL.bit.OUT_MODE = 0x1;//上升不延迟,下降沿延迟
   EPwm1Regs.DBCTL.bit.POLSEL = 0x2;//EPWMxB的输出取反
  
   EPwm1Regs.DBFED = 1000;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -