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没什么用似得。有用过比较中断的吗,指点一下吧 |