OpenEdv-开源电子网

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

定时器输入捕获

[复制链接]

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-10-2
在线时间
3 小时
发表于 2016-3-25 19:50:07 | 显示全部楼层 |阅读模式
看了好久都没理解,看了原子哥的视频有点懂了,手册后面看了有点乱
执行过程:由于本次试验里用到了定时器捕捉,那么要考虑两种中断,捕获中断和定时器溢出中断
1、当进入的是中断,先判断上次捕获是否处理结束,处理结束后,主函数会设置STA第七位为0
if((TIM2CH1_CAPTURE_STA&0X80)==0)说明上次捕捉处理结束或者未捕捉
满足则可以进入下一步

        2、进入后判断是溢出中断还是捕获中断
        if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)//是否溢出中断
        if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET)//捕获1发生捕获事件
       
                3、是溢出中断,判断是捕获前还是捕获后,
                if(TIM2CH1_CAPTURE_STA&0X40)//已经捕获到高电平了
                如果是捕获前溢出,那么这个没用,这几级判断直接退出,最外面消除中断标志位
                如果是捕获后溢出,说明是捕获的高电平比较长
               
                先判断捕获的高电平if((TIM2CH1_CAPTURE_STA&0X3F)==0X3F)//高电平太长了
                高电平长到溢出的计数变量都满了,标记捕获成功一次,并设置定时器值到最大,
                此时窗口显示的就不是准确的捕捉时长了,而是这个程序的计数最大值
               
                如果没有太长,那么计数溢出一次STA++

                4、是捕获中断
                        (1)是捕获下降沿:
                                那么此时一个高电平捕捉完成,标记捕捉到下降沿,捕捉完成记录下此时的定时器值,再设置回上升沿捕捉,以便下次捕捉
                               
                        (2)是捕获上升沿:
                                那么此时是捕捉刚开始,先清空两个自定义计数器和定时器2计数器,标记捕获到上升沿,设置为下降沿捕获,等待下降沿来到

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 13:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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