STM8L052C6单片机在配置定时器2定时中断时,即使输入捕获1、2没有使能,当定时器产生溢出中断时,TIM2_SR1寄存器的CC1IF和CC2IF位任然会被置位,但是TIM2_CCR1和TIM2_CCR2寄存器又没有值。且如果CC1IF和CC2IF不清除的话,下个定时器溢出中断,过捕获标识也不会置位,不知道什么原因。现在当需要使用TIM2的输入捕获功能时定时中断产生的捕获标识会干扰程序判断,虽然通过软件方法可以过滤,但不知道会不会出现其他问题,以及该现象的具体原因。以下时相关配置代码和仿真结果:
void CrystalInit(void)
{
CLK_PCKENR1_PCKEN10 = 1; // TIM2 Clock enable
CLK_SWR = 0x01; // 选择内部16M 晶振
CLK_CKDIVR = 0x01; // 系统时钟源2分频 8M
}
void TIM2_Init(void)
{
TIM2_PSCR = 0x03; //系统时钟8M,8分频
TIM2_ARRH = 0xF4; //1/16秒一次中断
TIM2_ARRL = 0x23;
TIM2_CR1 = 0x81; //使能定时器
TIM2_SR1 = 0x00; //清除中断标志
}
|