OpenEdv-开源电子网

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

STM32定时器ETR高频计数丢脉冲

[复制链接]

2

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-8-26
在线时间
38 小时
发表于 2020-11-19 15:30:03 | 显示全部楼层 |阅读模式
问题:使用定时器的ETR功能做外部脉冲计数时,频率越高丢失的脉冲越多,想请教一下大家可能是什么原因造成的?

核心板采用STM32F100RCT6,主频24MHz;理论上最大可计的外部脉频率为12M;
信号源:信号发生器(用于产生高频脉冲信号与1S闸门信号,经时钟仪测试精度达10^-7);

高频信号测试:分别配置TM1、TIM2、TIM3的ETR功能,用于外部脉冲计数,计满65536次后进入一次中断;

1S闸门信号:外部中断方式;中断程序种读取CNT溢出次数和当前值,计算1S闸门内高频脉冲个数;

测试结果:100KHz,无丢失;500KHz,丢4个;1MHz:丢70个;2MHz,丢200个;5Mhz,丢1200个;8MHz,丢4500个;10MHz,丢5000个;




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

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10569
金钱
10569
注册时间
2017-2-18
在线时间
1913 小时
发表于 2020-11-20 09:44:41 | 显示全部楼层
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-8-26
在线时间
38 小时
 楼主| 发表于 2020-11-26 17:26:34 | 显示全部楼层
问题已解决,原因是自己在定时器(ETR计数)中断函数中多清了一次CNT寄存器,导致产生中断到清CNT寄存器命令之间计到的脉冲数被清除。进入定时中断之后会自动清CNT寄存器中的值。修改之后可以正常计数,最高可计脉冲频率达12MHz,脉冲误差都在10个之内。
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2019-2-28
在线时间
3 小时
发表于 2020-11-26 17:29:21 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2021-3-16
在线时间
10 小时
发表于 2021-6-21 14:03:49 | 显示全部楼层
你好可以看一下你的代码嘛?我也遇到了丢脉冲的问题 在这个帖子里面http://www.openedv.com/forum.php ... d=327375&extra=
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-23 01:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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