• 大小: 186KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: 其他
  • 标签: DSP  F28335  ePWM  

资源简介

基于DSPf28335_ePWM_互补对称波形源程序,程序里用中文注释了每一条程序,简单易懂,适合学模块的时候立马入门,给大家参考。

资源截图

代码片段和文件信息

/*
 * ePWM_hubuduichen.c
 *
 *  Created on: 2019年3月16日
 *      Author: ZHOUXQ
 */
#include “DSP2833x_Device.h“     // DSP2833x Headerfile Include File
#include “DSP2833x_Examples.h“   // DSP2833x Examples Include File
void InitePWM1Gpio(void);
void ePWMSetup(void);
void main()
{
// Step 1. Initialize System Control:
// PLL WatchDog enable Peripheral Clocks
// This example function is found in the DSP2833x_SysCtrl.c file.
         InitSysCtrl();   //步骤1。初始化控制系统
   // Step 3. Clear all interrupts and initialize PIE vector table:
   // Disable CPU interrupts
      DINT;    //关闭总中断
      // Initialize the PIE control registers to their default state.
      // The default state is all PIE interrupts disabled and flags
      // are cleared.
      // This function is found in the DSP2833x_PieCtrl.c file.
         InitPieCtrl();   //初始化PIE

      // Disable CPU interrupts and clear all CPU interrupt flags:
         IER = 0x0000;
         IFR = 0x0000;

      // Initialize the PIE vector table with pointers to the shell Interrupt
      // Service Routines (ISR).
      // This will populate the entire table even if the interrupt
      // is not used in this example.  This is useful for debug purposes.
      // The shell ISR routines are found in DSP2833x_DefaultIsr.c.
      // This function is found in DSP2833x_PieVect.c.
         InitPieVectTable();    //中断向量表

         ePWMSetup();

         for(;;);                //相当于while(1);

}

void InitePWM1Gpio(void)
{

EALLOW;

GpioCtrlRegs.GPAPUD.bit.GPIO0=0;
GpioCtrlRegs.GPAPUD.bit.GPIO1=0;
GpioCtrlRegs.GPAMUX1.bit.GPIO0=1;
GpioCtrlRegs.GPAMUX1.bit.GPIO1=1;

EDIS;

}

void ePWMSetup(void)
{
EALLOW;

InitePWM1Gpio();      //配置为ePWM端口
EPwm1Regs.TBPRD=1200;        //时基控制寄存器    设定PWM周期为2×600个TBCLK时钟周期
EPwm1Regs.CMPA.half.CMPA=600;  //比较器A设置为600个TBCLK           TBCLK是时基时钟
EPwm1Regs.CMPB=600;            //比较器B设置为600个TBCLK
EPwm1Regs.TBSTS.all=0;              //时基状态寄存器清零
EPwm1Regs.TBPHS.half.TBPHS = 0;           //时基相位寄存器清零
    EPwm1Regs.TBCTR = 0;                    //时基计数寄存器清零
EPwm1Regs.CMPCTL.all=0x50;      //计数比较控制寄存器       计数比较A和B寄存器操作模式为立即转载模式,不需要影子寄存器
EPwm1Regs.TBCTL.all=0x003A;     //时基控制寄存器        设置为:时基时钟分频位为1,高速时基时钟分频位为1,相当于不分频。
                                //禁止同步信号输出,禁止使用影子寄存器,禁止计数寄存器装载相位寄存器,计数模式为上下计数。

EPwm1Regs.AQCTLA.bit.CAU=0x2;   //当向上计数时,时基计数器的值与CMPA寄存器的值相等时使ePWMA输出高;
EPwm1Regs.AQCTLA.bit.CAD=0x1;   //当向下计数时,时基计数器的值与CMPA寄存器的值相等时使ePWMA输出低;
EPwm1Regs.AQCTLB.bit.CBU=0x1;   //当向上计数时,时基计数器的值与CMPB寄存器的值相等时使ePWMB输出低;
EPwm1Regs.AQCTLB.bit.CBD=0x2;   //当向上计数时,时基计数器的值与CMPB寄存器的值相等时使ePWMB输出高;

EPwm1Regs.DBCTL.all=0x2;        //死区控制寄存器  配置为:ePWMxA是双边沿延时输入源。ePWMA和ePWMB都不翻转。禁止下降沿延时,使能上升沿延时;
EPwm1Regs.DBRED=100;            //死区上升沿延时寄存器    RED=DBRED×T(TBCLK) 相当于延时100个TBCLK时钟周期
EPwm1Regs.DBFED=0;              //死区下降沿延时寄存器    FED=DBFED×T(TBCLK) TBCLK就是时基时钟   相当于下降沿不延时

EDIS;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-03-16 16:15  ePWM_hubuduichen\
     文件         518  2019-03-16 10:05  ePWM_hubuduichen\.ccsproject
     文件       22282  2019-07-14 22:21  ePWM_hubuduichen\.cproject
     目录           0  2019-03-16 16:15  ePWM_hubuduichen\.launches\
     文件        4818  2019-07-23 16:05  ePWM_hubuduichen\.launches\ePWM_hubuduichen.launch
     文件        2840  2019-03-16 10:05  ePWM_hubuduichen\.project
     目录           0  2019-03-16 10:08  ePWM_hubuduichen\.settings\
     文件          62  2019-03-16 10:05  ePWM_hubuduichen\.settings\org.eclipse.cdt.codan.core.prefs
     文件         123  2019-03-16 10:05  ePWM_hubuduichen\.settings\org.eclipse.cdt.debug.core.prefs
     文件         208  2019-03-16 10:08  ePWM_hubuduichen\.settings\org.eclipse.core.resources.prefs
     文件        7270  2019-03-16 10:05  ePWM_hubuduichen\28335_RAM_lnk.cmd
     目录           0  2019-07-25 10:58  ePWM_hubuduichen\Debug\
     文件        1343  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_ADC_cal.obj
     文件        1651  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_CodeStartBranch.obj
     文件        6004  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_CpuTimers.obj
     文件        3513  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_CpuTimers.pp
     文件       33319  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_DefaultIsr.obj
     文件        3542  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_DefaultIsr.pp
     文件       15956  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_EPwm.obj
     文件        3368  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_EPwm.pp
     文件      121458  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_GlobalVariableDefs.obj
     文件        2777  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_GlobalVariableDefs.pp
     文件        5959  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_PieCtrl.obj
     文件        3455  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_PieCtrl.pp
     文件       17857  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_PieVect.obj
     文件        3455  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_PieVect.pp
     文件       16373  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_SysCtrl.obj
     文件        3455  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_SysCtrl.pp
     文件        1352  2019-07-16 16:52  ePWM_hubuduichen\Debug\DSP2833x_usDelay.obj
     文件         406  2019-07-25 10:58  ePWM_hubuduichen\Debug\ccsObjs.opt
     文件       27889  2019-07-25 10:58  ePWM_hubuduichen\Debug\ePWM_hubuduichen.map
............此处省略14个文件信息

评论

共有 条评论