[STM8] 定时中断计算延时遇到一次中断进两次的问题

[复制链接]
1558|0
 楼主| mingjiezhong 发表于 2014-8-8 18:01 | 显示全部楼层 |阅读模式
初始化程序如下

void timer_Init(void)
{  
    TIM2_DeInit();
    TIM2_TimeBaseInit( TIM2_PRESCALER_16 , 999 );
    /* Enable the Interrupt Upmode sources */
    TIM2->IER |= 0x01 ;  
    TIM2-> CR1 |= BIT(0) ;//计数器使能
}

处理程序如下
#pragma vector = TIM2_Updata_vector
__interrupt void TIM2_Updata_IRQHandler(void)   //中断频率 1K
{
   if(!( TIM2->SR1 & (BIT(0)) ) )      //这里比较奇怪,每次计数会有两次进中断的过程,不加上就不对头了
     return ;
   
    TIM2->SR1 &=~BIT(0);//清标志位
    rim();//开总中断
}

不理解STM8S003为什么会有一个定时发送中断,但是要进两次中断的问题,定时器标志我看只有一次置位,有一次定时器更新标志进来的时候就是0,通过逻辑是解决了问题

您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

80

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部