请教香版和各位大侠STM32 定时捕获中断中溢出中断问题

[复制链接]
4625|6
 楼主| pdabug 发表于 2012-11-1 14:13 | 显示全部楼层 |阅读模式
在我的应用中需要连续捕获一串脉冲,使用我tim3的捕获模式中断和溢出中断,
现在碰到的问题是在中断服务程序中:如果这个时候发生溢出,溢出中断不能置位,导致这次的溢出不会再次产生中断,下一次溢出才能产生中断;
问题是:在捕捉中断中如果发生定时器计数溢出能产生中断吗?
 楼主| pdabug 发表于 2012-11-1 14:18 | 显示全部楼层
u16 g_ulTime3OverCount = 0;//溢出次数计数
void TIM3_IRQHandler(void)
{
        u16 usCC3;
        u16 usOF3 =0;
        u16 itstatus =0;
       
    /* enter interrupt */

                //PB0 TIM3-chan3
                //read int status
                itstatus = TIM3->SR;
                TIM_ClearITPendingBit(TIM3, TIM_IT_CC3 | TIM_IT_Update);
                //read trigger first
               
                if(itstatus & TIM_IT_Update)
                {
                        g_ulTime3OverCount++;
                }

                if(itstatus & TIM_IT_CC3)
                {
                        usCC3 = TIM3->CCR3;
                        usOF3 = g_ulTime3OverCount;
                        buf_write(&buf_axis1_pwm2, (u8 *)&usCC3,2);//写缓存
                        buf_write(&buf_axis1_pwm2, (u8 *)&usOF3,2);
                }
}
 楼主| pdabug 发表于 2012-11-1 14:19 | 显示全部楼层
2楼中断处理代码,谢谢
 楼主| pdabug 发表于 2012-11-1 14:23 | 显示全部楼层
依以前其他mcu的经验只要不是在清标志位
                TIM_ClearITPendingBit(TIM3, TIM_IT_CC3 | TIM_IT_Update);
的这句代码时发生溢出就不会有问题,在文档里也没找到详细说明,能指点下否,谢谢
 楼主| pdabug 发表于 2012-11-2 10:59 | 显示全部楼层
有人看看吗
806849108 发表于 2013-2-26 11:26 | 显示全部楼层
问题 解决了吗?
uet_cache 发表于 2013-2-26 12:18 | 显示全部楼层
溢出中断和更新中断是不同的中断,应该可以进溢出中断吧。两个中断都要使能,楼主试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

15

帖子

0

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