频率测量
测频法(计频法)
对一段标准时间内的被测信号的上升沿数量进行计数。
测频法误差
计数器只能进行整数计数,而在标准信号周期时间窗口内,却不一定刚好有整数个被测信号周期。因此测频法造成的最大测量误差为±1个被测信号。建议用于被测信号频率较高的情况。
测周法(计时法)
在被测信号的两个上升沿间标准时间的计数。
测周法误差
计数器只能进行整数计数,而在标准时间窗口内,却不一定刚好有整数个标准信号周期。建议用于被测信号频率较低的情况。
由于SPIN0280可以很便捷的捕获LSI和HSE的128分频,所以使用测周法。
TIM2 通用定时器
由一个16位可实时编程预分频器和一个32位计数方向可调的自动装载计数器组成,可以为用户提供便捷的计数定时功能,计数器时钟由预分频器分频得到。
TIM2具有多种用途:输入功能(测量输入信号的脉冲宽度、频率,PWM输入等),输出功能(PWM输出、单脉冲模式输出等)。
本次主要介绍TIM2的输入捕获功能:
输入捕获部分包括数字滤波器、多路复用、预分频器等,结构如下:
输入捕获模式下,当检测到信号ICx上的有效边沿后,计数器的当前值被锁存到对应的影子寄存器上,再复制到对应的捕获比较寄存器中。当开启了中断或DMA使能,发生捕获事件时,将产生相应的中断或DMA请求。发生捕获事件时,会将状态寄存器(TIM2\_SR)中的捕获标志位 CCxIF 置 1,通过配置 CCxIF=0或读取TIM2\_CCRx中的数据,清除CCxIF标志位。当CCxIF未被清零时,发生输入捕获事件,重复捕获标志位CCxOF将会被置1,通过配置CCxOF=0,可以清除CCxOF标志位。
SPIN0280的通用定时器TIM2有输入选项寄存器(TIM2\_OR),可以很便捷的复用通道四,配置输入为CH4 GPIO 或比较器输入或LSI或HSE的128分频
SPIN0280内部时钟捕获外部HSE时钟具体步骤
1 开启HSI时钟(8M)并倍频(最高96MHz)
2 TIM2挂载在APB1上,使能TIM2时钟
3 配置TIM2,计数器清空,由低向高计数,上升沿触发,时钟不分频
4 配置TIM2的通道4作为输入捕获,上升沿触发,输入信号8分频
5 开启TIM2通道4的时钟中断,并配置NVIC和编写中断函数
6 开启HSE时钟,等待稳定
7 配置TIM2通道4输入信号为HSE的128分频
示例代码如下:
示例输出结果:
作者:灵动MM32
文章来源:灵动MM32MCU
推荐阅读
- 灵动股份推出基于STAR-MC1的MM32G5330
- 灵动微课堂|为MindSDK搭建Keil MDK开发环境
- 灵动微课堂 |Mini-F0160实现USB转3路虚拟串口
- 灵动微课堂 |开源项目:基于MM32F0160微控制器的机械键盘
- 灵动微课堂 |为MindSDK搭建armgcc编译环境(Windows版)
更多MM32F5系列资料请关注灵动MM32 MCU专栏。如想进行MM32相关芯片技术交流,请添加极术小姐姐微信(id:aijishu20)加入微信群。