OpenEdv-开源电子网

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

关于定时器输入捕获的几个问题

[复制链接]

4

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2014-4-24
在线时间
0 小时
发表于 2014-7-12 10:57:40 | 显示全部楼层 |阅读模式
5金钱
我之前用战舰版  库函数版本  的输入捕获实验,能够顺利的捕获上升沿,并能测出PWM信号的高电平时间,但是有几个地方不明白,所以想在这里请教一下大家:
1、定时器一旦捕获到了上升沿,就会一直不断的将高电平时间输出printf("HIGH:%d us\r\n",temp);
    不知道有没有办法只捕获一次,然后进入中断中,我是想要在中断中触发AD转换。
2、我在主函数中,if(TIM2CH2_CAPTURE_STA&0X80) 判断完是否成功捕获到上升沿,输出高电平时间后加了一句关闭定时器2的句子:TIM_Cmd(TIM2,DISABLE );
    这样PC机的串口调试助手会收到一次正确的高电平时间,后面会连续不断的收到:  HIGH:0 us
    我想要实现的跟上面的一样,就是想只捕获一次,只输出一次的高电平时间,不知道应该要怎么设置?

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

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2014-7-12 18:46:36 | 显示全部楼层
就按你说的捕获之后,关闭定时器不行吗?
我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复

使用道具 举报

4

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2014-4-24
在线时间
0 小时
 楼主| 发表于 2014-7-14 08:51:21 | 显示全部楼层
回复【2楼】Admin:
---------------------------------
不行,如果在定时器中断处理函数的最后关闭定时器,还是会有数据输出,只是输出数据为0;
如果在主函数中的if(TIM2CH2_CAPTURE_STA&0X80),判断完成功捕获一次上升沿之后,关闭定时器,第一次输出的数据是高电平时间,但后面还会连续输出0;
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-6 05:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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