资源简介
基于DSP28335产生4路PWM移相程序,每路以A为准,B与之互补,带死区。移相以第一路信号(EPWM1A)为基准。假设第一路与第二路之间的移相角为D1 若D1=x,则D1对应0.24*x度,例如x=50时,D1对应12度。
代码片段和文件信息
//###############################################################################################
// Description:
// program for 4路PWM信号,每路以A为准,B与之互补,带死区。移相以第一路信号(EPWM1A)为基准
// $TI Release: F2833x/F2823x Header Files and Peripheral Examples V142 $
// $Release Date: July 30 2017 $
// $Copyright: Copyright 孙川(Sun Chuan) $
//###############################################################################################
#include “DSP28x_Project.h“
void InitExInt(void);
void InitEPwm1Example(void);
void InitEPwm2Example(void);
void InitEPwm3Example(void);
void InitEPwm4Example(void);
//interrupt void epwm1_isr(void);
//interrupt void epwm2_isr(void);
//interrupt void epwm3_isr(void);
//interrupt void epwm4_isr(void);
// Configure the period for each timer
//第一路
volatile Uint16 EPWM1_TIMER_TBPRD = 1500; // Period=1501 TBCLK counts
volatile Uint16 EPWM1_CMPA = 750; // Set 50% 占空比 for EPWM1A -> S1
//第二路
volatile Uint16 EPWM2_TIMER_TBPRD = 1500;
volatile Uint16 EPWM2_CMPA = 750;
//第三路
volatile Uint16 EPWM3_TIMER_TBPRD = 1500;
volatile Uint16 EPWM3_CMPA = 750;
//第四路
volatile Uint16 EPWM4_TIMER_TBPRD = 1500;
volatile Uint16 EPWM4_CMPA = 750;
volatile Uint16 D1 = 50; //第一路与第二路之间的移相角 若D1=x,则D1对应0.24*x度,例如x=50时,D1对应12度
volatile Uint16 D2 = 100; //第一路与第三路之间的移相角
volatile Uint16 D3 = 72; //第一路与第四路之间的移相角
#define DBTIME_FED 28 死区设置
#define DBTIME_RED 28
void main(void)
{
// Step 1. Initialize System Control:
// PLL WatchDog enable Peripheral Clocks
// This example function is found in the DSP2833x_SysCtrl.c file.
InitSysCtrl();
// Step 2. Initialize GPIO:
// This example function is found in the DSP2833x_Gpio.c file and
// illustrates how to set the GPIO to it‘s default state.
// InitGpio(); // Disenable pull-up on GPIO0 ~ GPIO11
// For this case just init GPIO pins for ePWM1 ePWM2 ePWM3 ePWM4
// These functions are in the DSP2833x_EPwm.c file
InitEPwm1Gpio();
InitEPwm2Gpio();
InitEPwm3Gpio();
InitEPwm4Gpio();
// 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();
// 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();
MemCopy(&RamfuncsLoadStart &RamfuncsLoadEnd &RamfuncsRunStart); //烧录进Flash中运行
InitFlash();
InitExInt();
EALLOW;
PieVect
相关资源
- 基于DSP28335的四路PWM移相代码
- 基于 ATMEGA-16 的 PWM 与 Proteus 仿真
- STM32输出SPWM
- 28335 SVPWM 控制例程
- 直流电机PWM闭环调速系统
- SVPWM技术在dsPIC上的实现.pdf
- CC2530 T1 产生PWM 代码 + 代码文档
- 28335epwm工作并触发AD采样
- 一种新颖的三相SPWM技术
- UC3854基本资料
- 直流电机PWM调速系统的设计与仿真
- 我自己调试好的S3C6410 LED & KEY & PWM
- 移相全桥软开关DCDC变换器设计
- PWM控制舵机
- PWM用于马达控制器.pdf
- 桥式直流PWM变流器的研究与仿真
- 三电平SVPWM
- DSP28335生成SPWM波形源代码
- DSP28335学习经验分享
- 基于DSP产生SPWM的程序
- TMS320F28335SPWM开环测试程序
- 利用PWM技术控制RGB灯变色和呼吸
- 基于单片机的温控风扇设计
- 直流无刷电机控制算法
- 555PWM调压电路的仿真以及数码管的显
- SVPWM三相并网逆变器仿真
- 单相PWM整流器PSCAD模型
- 51单片机 pwm波产生.zip
- STM32输入捕获PWM,航模遥控器调试。
- 直流PWM可逆调速系统设计与仿真
评论
共有 条评论