13899|25

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教通用定时器中计数器的溢出标志 [复制链接]

                                 小弟想用TIM3的CH1来捕获脉冲,奈何计数器TIM3_CNT只有16位,72M主频时低于1.1KHz的脉冲就捕获不到,想用上计数器的溢出标志进行补充,扩大捕获周期,看了下资料没找到计数器的溢出标志,还请高手指点,谢谢。
此帖出自stm32/stm8论坛

最新回复

你说的是不是 TIMx_SR_UIF Updata interrupt flag ?根据我的理解,只要计数器更新为初始值,就会UIF置1  详情 回复 发表于 2017-4-26 18:04
点赞 关注(1)
 

回复
举报

89

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 我是想在每次溢出时进行计数,计算脉冲频率的时候结合定时器的溢出次数和当前的捕获值,脉冲计算完成后清溢出计数,这样就可以捕获周期比较长的脉冲,然后又不用分频损失精度,只是看定时器的那些标志位有些晕乎,不知道怎样能实现我的要求,还请高手指点!
此帖出自stm32/stm8论坛
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
                                 计数器的溢出标志在定时器里面肯定是有的,在仔细看下DATASHEET
此帖出自stm32/stm8论坛
 
 

回复

78

帖子

0

TA的资源

一粒金砂(中级)

4
 
                                 经过一段时间的调试还发现定时器有丢失捕获标志的现象,勘误表里面也有提到,做个32位计数器多好啊!!!
此帖出自stm32/stm8论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(中级)

5
 
                                 update(更新)标志就是计数器的溢出标志!
此帖出自stm32/stm8论坛
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

6
 
                                 现在发现一个致命问题,溢出计数和脉冲捕获相结合的方式要求每次捕获发生时都能捕捉到,因为我在计算输入脉冲的时候对溢出计数清零,如果捕获事件发生了5次,程序中仅捕捉到3次(采用查询的方式),计算脉冲就会出现错误,除非是程序采取中断方式进行捕捉,但高频脉冲输入时,频繁的中断显然是极大的开销,会影响其他重要事件的执行力度(eg:PWM输出)。
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

7
 
高频脉冲输入时,怎么会有计数溢出呢?既然有计数溢出,就不可能有频繁的中断。

请讲清楚你的真正需求。
此帖出自stm32/stm8论坛
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

8
 
                                 学习了
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

9
 

外部脉冲输入不是我能控制的啊,我需要捕获1Hz~50KHz的脉冲。
此帖出自stm32/stm8论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

10
 
                                 这个频率范围是有点大,1HZ肯定要溢出了,建议加个倍频电路,不然定时器可能要溢出N次了
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

11
 
                                 50kHz的周期是20us,这个时间对于STM32的72MHz主频来说并不算快,不会有你说的频繁中断问题。
此帖出自stm32/stm8论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

12
 

us级的中断是不被允许的,会影响产品性能。
此帖出自stm32/stm8论坛
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

13
 
同意 11楼:版主 的观点。
  我以前在普通的89C51上用过50us定时中断,外接晶振是11.0592,  执行最快的单字节指令也要1us多,现在的STM32的72MHz主频,执行一条指令要比那时的51快N倍,20us的中断频率应该可行,不会有你说的频繁中断问题。
此帖出自stm32/stm8论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

14
 

不知道你的产品用在什么地方,对可靠性要求有多高,我这个要用在工业控制领域,除了性能需要的中断,其他地方都不允许使用中断。
此帖出自stm32/stm8论坛
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(初级)

15
 
                                 每20us产生一次中断,你的可靠性都保证不了,那么怎么样的硬件环境才能满足你的要求呢?即使是使用32位的定时器,也不能避免每20us产生一次中断呀,难道使用32位的定时器你有什么高招避免频繁中断?
此帖出自stm32/stm8论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

16
 
                                 32位的定时器我直接采用查询的方式计算脉宽就行了,也就是说中断是留给跟性能相关的功能使用,像脉冲捕获这些功能还有串口通讯这些都是不能使用中断的。
此帖出自stm32/stm8论坛
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

17
 
                                 用中断是最省事的方式,什么功能都使用中断,系统的核心性能如何保障,这个是做产品不得不面对的问题。
此帖出自stm32/stm8论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

18
 

谢谢5楼的指点,另外还需设置updata标志的触发源,以我为例,需要在计数器上溢时产生updata标志。
TIM_UpdateRequestConfig(TIM3, TIM_UpdateSource_Regular);
#define TIM_UpdateSource_Regular           ((uint16_t)0x0001) /*!< Source of update is counter overflow/underflow. */
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

19
 
32位的定时器我直接采用查询的方式计算脉宽就行了,也就是说中断是留给跟性能相关的功能使用,像脉冲捕获这些功能还有串口通讯这些都是不能使用中断的。 ...
如果采用查询的方式可以解决问题,溢出标志也可以使用查询方式呀,为什么一定要用中断呢?
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

20
 
                                 关键是我在6楼提到的问题,查询的时候会有漏掉捕获事件的问题,造成计算脉冲错误。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表