打印

DSP新手提问

[复制链接]
2202|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gang544043963|  楼主 | 2013-1-16 14:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在下面程序中T1CMPR和CMPR1有什么区别?(红色标注)
void Init_EVA(void)
{
        EALLOW;
           GpioMuxRegs.GPAMUX.all = 0x00FF; // EVA PWM 1-6
           EDIS;
            
           EvaRegs.T1PR = Period;      // Timer1 period
           EvaRegs.T1CMPR = Pulse;     // Timer1 compare
           EvaRegs.T1CNT = 0x0000;     // Timer1 counter
           EvaRegs.T1CON.all = 0x1042; //连续增计数模式,使能定时器,比较使能
           EvaRegs.T1CON.bit.TPS=6;    //设置高速时钟64分频   

          EvaRegs.T2PR = Period;      // Timer2 period
          EvaRegs.T2CMPR = Pulse;     // Timer2 compare
          EvaRegs.T2CNT = 0x0000;     // Timer2 counter
        EvaRegs.T2CON.all = 0x1042; //连续增计数模式,使能定时器,比较使能
        EvaRegs.T2CON.bit.TPS=6;    //设置高速时钟64分频

        EvaRegs.GPTCONA.bit.TCMPOE = 1;//设置引脚T1PWM_T1CMP、T2PWM_T2CMP由定时器1和2独立驱动
        EvaRegs.GPTCONA.bit.T1PIN = 1; //设置低有效
        EvaRegs.GPTCONA.bit.T2PIN = 2; //设置高有效

        EvaRegs.CMPR1 = 3125;//设置比较寄存器
        EvaRegs.CMPR2 = 6250;
        EvaRegs.CMPR3 = 8270;
            
        EvaRegs.ACTRA.all = 0x0999;    //设置输出特性
        EvaRegs.DBTCONA.bit.EDBT1 = 1; //使能PWM1/2死区电路
        EvaRegs.DBTCONA.bit.EDBT2 = 1; //使能PWM3/4死区电路
        EvaRegs.DBTCONA.bit.EDBT3 = 1; //使能PWM5/6死区电路
        EvaRegs.DBTCONA.bit.DBTPS = 3; //设置死区电路时间预分频
        EvaRegs.DBTCONA.bit.DBT = 10;  //设置死区电路周期
        EvaRegs.COMCONA.all = 0xA600;  //设置比较单元
}

相关帖子

沙发
zhangmangui| | 2013-1-16 15:02 | 只看该作者
我来给你解答:T1CMPR和CMPR1都作为比较寄存器,参与比较输出不同占空比的PWM波,最大的区别就是各自控制的PWM输出引脚是不同的,T1CMPR 控制输出PWM波的引脚是T1PWM,CMPR1控制输出PWM波的引脚是 PWM1 和PWM2,你应该注意到它们不同的引脚了吧

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
gang544043963 + 3 很给力!
板凳
zhangmangui| | 2013-1-16 15:06 | 只看该作者
在给你附加个引脚图看看   

使用特权

评论回复
地板
gang544043963|  楼主 | 2013-1-16 15:32 | 只看该作者
zhangmangui 发表于 2013-1-16 15:02
我来给你解答:T1CMPR和CMPR1都作为比较寄存器,参与比较输出不同占空比的PWM波,最大的区别就是各自控制的 ...

是一个用于定时器,另一个是全比较单元吗?

使用特权

评论回复
5
zhangmangui| | 2013-1-16 15:42 | 只看该作者
也不是用于定时器吧  它们两个都有自己的定时器  只是TICMPR只能输出一路PWM波  而CMPR1可以用一个定时器控制相同占空比而可以互补的  两路中带死区的两路PWM波  具体看看datasheet上的框图

使用特权

评论回复
6
gang544043963|  楼主 | 2013-1-16 15:45 | 只看该作者
zhangmangui 发表于 2013-1-16 15:42
也不是用于定时器吧  它们两个都有自己的定时器  只是TICMPR只能输出一路PWM波  而CMPR1可以用一个定时器控 ...

非常感谢,你的解答很精彩

使用特权

评论回复
7
zhangmangui| | 2013-1-16 18:01 | 只看该作者
gang544043963 发表于 2013-1-16 15:45
非常感谢,你的解答很精彩

不谢  学习的过程中希望你能多多分享

使用特权

评论回复
8
DIYfashaoyou| | 2013-1-17 14:06 | 只看该作者
T1CMPR是T1定时器的比较寄存器,CMPR1是比较单元1的比较寄存器。两个是不同的输出引脚,所以可以同时输出不同占空比的波形!

使用特权

评论回复
9
gang544043963|  楼主 | 2013-1-18 10:55 | 只看该作者
DIYfashaoyou 发表于 2013-1-17 14:06
T1CMPR是T1定时器的比较寄存器,CMPR1是比较单元1的比较寄存器。两个是不同的输出引脚,所以可以同时输出不 ...

谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:初学者

11

主题

89

帖子

1

粉丝