DSP PWM波占空比如何改变?
答案:3 悬赏:40 手机版
解决时间 2021-02-08 15:17
- 提问者网友:我的未来我做主
- 2021-02-07 16:04
* MCRA|=0x0FC0;
* ACTRA=0x0666;
* DBTCONA=0x0000;
* CMPR1=0x0100;
* CMPR2=0x0300;
* CMPR3=0x0500;
* T1PER=0x0600;
* COMCONA=0x8200;
* T1CON=0x1000;
如上,请问如何改能使发出10%,50%,90%占空比的PWM波?请诸位大侠帮忙!!
最佳答案
- 五星知识达人网友:罪歌
- 2021-02-07 16:15
首先要明白占空比的意义,就是高电平与整个周期的比,可以改变触发值
* CMPR2=0x0300;
* CMPR3=0x0500;
这个就是37.5%的占空比,
* CMPR2=0x0100;
* CMPR3=0x0900;
这个就是10%的占空比,
* CMPR2=0x0500;
* CMPR3=0x0500;
这个就是50%的占空比,
* CMPR2=0x0900;
* CMPR3=0x0100;
这个就是90%的占空比,
应该是这样,楼主试试,如果不对请告诉我,呵呵
* CMPR2=0x0300;
* CMPR3=0x0500;
这个就是37.5%的占空比,
* CMPR2=0x0100;
* CMPR3=0x0900;
这个就是10%的占空比,
* CMPR2=0x0500;
* CMPR3=0x0500;
这个就是50%的占空比,
* CMPR2=0x0900;
* CMPR3=0x0100;
这个就是90%的占空比,
应该是这样,楼主试试,如果不对请告诉我,呵呵
全部回答
- 1楼网友:未来江山和你
- 2021-02-07 17:30
好久没弄这方面的了。印象里,改变比较周期寄存器的值,当定时器的值与其相同时,PWM输出状态改变,总的周期是定时器的定时值。根据这个原理,改变比较寄存器的值与定时器的最大值的比例。可以改变相应的占空比。这个在书里有比较详细的实现方法。
- 2楼网友:人间朝暮
- 2021-02-07 16:44
用eva事件管理器产生 重点看哈那张的内容 占空比有公式计算 自己动手做了才知道是怎么回事
#include "dsp28_device.h"
#include "dsp28_globalprototypes.h"
uint32 intcount;
int increase;
int decrease;
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)
{
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯