打印

关于2812定时器比较中断的问题

[复制链接]
2086|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电子乌鸦|  楼主 | 2008-9-26 08:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void InitEvaTimer1(void)
{
    EvaRegs.GPTCONA.all = 0x0000;
    EvaRegs.T1PR = 0x0100;           //T1周期寄存器
    EvaRegs.T1CMPR = 0x0100;         //T1比较寄存器
    EvaRegs.EVAIMRA.bit.T1CINT = 1;    //T1中断屏蔽寄存器
    EvaRegs.EVAIFRA.bit.T1CINT = 1; //T1中断标志寄存器
    EvaRegs.T1CNT = 0x0000;            //T1计数器清零
    EvaRegs.T1CON.all = 0x1742;        //T1控制寄存器    
}
这是定时器比较中断初始化函数,我想问一下再做定时器比较中断的时候为什么要设置T1PR 寄存器呢,比较中断应该是设置T1CMPR,然后TICNT计数値与T1CMPR设置値相等的时候触发比较中断啊,好像和T1PR没有什么关系啊,但是再实际用的时候必须要设置T1PR,而且T1CMPR的値还必须小于或等于T1PR的値才能产生中断,即使T1CMPR设置成0也可以,好像T1CMPR没什么用似得。有用过比较中断的吗,指点一下吧

相关帖子

沙发
snakeemail| | 2008-9-27 14:36 | 只看该作者

无它,使劲看几遍就明白了

使用特权

评论回复
板凳
cauhorse| | 2008-10-3 16:33 | 只看该作者

看技术文档

通用定时器的周期是需要设置的,
以单向增/减计数为例,通过设置不同的定时周期,
相应的比较器触发周期也会变化,
这一点在使用PWM波形发生时很重要,
直接影响波形的周期。
理解它的最好办法还是去找个PWM有关的技术文档看看。

使用特权

评论回复
地板
tjsheep| | 2008-10-3 21:16 | 只看该作者

呵呵,txcmpr比较完了,还要txpr恢复呢

使用特权

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

本版积分规则

11

主题

21

帖子

0

粉丝