请教DSP28335输出类似下面的pwm波形程序,具体实现或者方法都可以

请教DSP28335输出类似下面的pwm波形程序,具体实现或者方法都可以,第1张

这岁饥个挺简单的吧

不知道你的DSP设置情况,我就说下我怎么设置吧。我设置的DSP频率是150M,你要发的PWM波周期是20KHz,设置乎余返连续增减模式,计数的最大值应该设为150M/40k=3750,你在设置比较值,如果占空比是50%,就设一半。然后你设个计数值,确定是什么时候开通哪个PWM,定义个flag就可以

了,设置为012,到了你毁郑的PWM长度就加1,到3时清0,等于0开PWM1,1开PWM2,2开PWM3就ok了。

用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)

{

}

}

这岁饥个挺简单的吧

不知道你的DSP设置情况,我就说下我怎么设置吧。我设置的DSP频率是150M,你要发的PWM波周期是20KHz,设置乎余返连续增减模式,计数的最大值应该设为150M/40k=3750,你在设置比较值,如果占空比是50%,就设一半。然后你设个计数值,确定是什么时候开通哪个PWM,定义个flag就可以 了,设置为012,到了你毁郑的PWM长度就加1,到3时清0,等于0开PWM1,1开PWM2,2开PWM3就ok了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12327075.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存