OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4987|回复: 2

捕获上升、下降沿,还有计数器CNT溢出的时候都是进的同一个中断服务程序?

[复制链接]

9

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
114
金钱
114
注册时间
2015-1-13
在线时间
8 小时
发表于 2015-3-25 20:59:49 | 显示全部楼层 |阅读模式
5金钱
我想问一下,捕获功能里面的定时器5中断服务程序,在发生捕获上升、下降沿,还有计数器CNT溢出的时候都是进的同一个中断服务程序,我的理解对吗?就是下面这段。
void TIM5_IRQHandler(void)

  u16 tsr;
  tsr=TIM5->SR;
 if((TIM5CH1_CAPTURE_STA&0X80)==0)//还未成功捕获,也就是说如果TIM5CH1_CAPTURE_STA==0;
  {
    if(tsr&0X01)//溢出,这时如果TIM5->SR的bit0==1;表达式相当于“TIM5->SR&0x01”
     {//"位0 UIF"更新中断标志位,
       if(TIM5CH1_CAPTURE_STA&0X40)//已经捕获到高电平了,如果bit6==1,则TIM5CH1_CAPTURE_STA
        {//的值至少是“ox0010 0000”,
          if((TIM5CH1_CAPTURE_STA&0X3F)==0X3F)//高电平太长了,这是一种特殊情况
            {
              TIM5CH1_CAPTURE_STA|=0X80;//标记成功捕获了一次,这将导致第一个if表达式为假
              TIM5CH1_CAPTURE_VAL=0XFFFF;
             }else TIM5CH1_CAPTURE_STA++;
        }
      }
   if(tsr&0x02)//捕获1发生捕获事件
     {
        if(TIM5CH1_CAPTURE_STA&0X40)//捕获到一个下降沿,即如果bit6==1,
         {
           TIM5CH1_CAPTURE_STA|=0X80;//,将bit7置位,标记成功捕获到一次高电平脉宽
           TIM5CH1_CAPTURE_VAL=TIM5->CCR1;//获取当前的捕获值.
           TIM5->CCER&=~(1<<1);//CC1P=0 设置为上升沿捕获
         } else //还未开始,第一次捕获上升沿,本中断服务函数应该从这里开始分析,该内容类似初始化
            {
              TIM5CH1_CAPTURE_STA=0;//清空
              TIM5CH1_CAPTURE_VAL=0;
              TIM5CH1_CAPTURE_STA|=0X40;//标记捕获到了上升沿
              TIM5->CNT=0;//计数器清空
              TIM5->CCER|=1<<1; //CC1P=1 设置为下降沿捕获
            }
      }
   }//第1个if的封口
TIM5->SR=0;//清除中断标志位
}



最佳答案

查看完整内容[请看2#楼]

F103的通用定时器中断函数只有一个,如果开启了多个中断,只需要在中断函数里通过读取状态寄存器(TIMx->SR  x=2,3,4,5)来判断是哪个中断 高级定时器1和8则有单独的中断函数(更新,捕获和触发等中断函数)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5782
金钱
5782
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-3-25 20:59:50 | 显示全部楼层
F103的通用定时器中断函数只有一个,如果开启了多个中断,只需要在中断函数里通过读取状态寄存器(TIMx->SR  x=2,3,4,5)来判断是哪个中断
高级定时器1和8则有单独的中断函数(更新,捕获和触发等中断函数)
回复

使用道具 举报

9

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
114
金钱
114
注册时间
2015-1-13
在线时间
8 小时
 楼主| 发表于 2015-3-29 21:01:42 | 显示全部楼层
回复【2楼】lycreturn:
---------------------------------
谢谢啦,我懂啦
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-24 11:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表