1. 选择适合的 DSP 芯片和开发板,如 TMS320F28335。
2. 根据具体需求编写 PWM 模块的程序。
3. 确定死区时间的控制方法。可以使用固定的时间,也可以通过 ADC 模块读取外部电压来动态调整死区时间。
4. 在程序中加入死区时间的计算和设置模块。
5. 配置 PWM 模块输出的周期、占空比和相位差。
6. 调试程序并验证输出波形的正确性。
具体实现方式需根据所选的 DSP 芯片和开发环境进行调整,建议参考相关资料或进行实验验证。
用EVA事件管理器产生 重点看哈那张的内容 占空比有公式计算 自己动手做了才知道是怎么回事/****************************************************************************
*
*文件名:EvPwm02.c
*
*功 能:PWM1和PWM2输出频率为1KHz的PWM波形。波形的占空比每隔1s变化5%,范围在10%
*到90%之间。
*
*说 明:EVA下面的通用定时器T1工作于连续增/减计数模式,产生对称的PWM波形。通过
*T1的周期中断来计时,每隔1s钟改变1次占空比。死区时间为4.27us。
*
****************************************************************************/
#include "DSP28_Device.h"
#include "DSP28_Globalprototypes.h"
Uint32 intcount
int increase
int decrease
/****************************************************************************
*
*名称:main()
*
*功能:初始化系统和各个外设
*
*入口参数:无
*
*出口参数:无
*
****************************************************************************/
void main(void)
{
InitSysCtrl() //初始化系统函数
DINT
IER = 0x0000 //禁止CPU中断
IFR = 0x0000 //清除CPU中断标志
InitPieCtrl() //初始化PIE控制寄存器
InitPieVectTable() //初始化PIE中断向量表
InitGpio() //初始化Gpio口
InitEv() //初始化EV
intcount=0//T1定时器周期中断计数器
increase=0//占空比逐渐变小的变化趋势标志位
decrease=1//占空比逐渐变大的变化趋势标志位
PieCtrl.PIEIER2.bit.INTx4=1 //使能PIE中断,T1定时器中断位于INT2.4
IER|=M_INT2
EINT //开全局中断
ERTM //开实时中断
EvaRegs.T1CON.bit.TENABLE=1 //使能定时器T1计数 *** 作
while(1)
{
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)