关于单片机的分频定时器的记录

记录一内部时钟:

对于单片机的频率原来一直不太明白,现在在学习进行记录:

主频:

复制代码
以一个72M的STM32单片机作为主频为例子,这个72M主频说得是一秒钟产生72000000(七千两百万)个脉冲或周期,就是一秒钟振荡七千两百万次。

分频

对于分频来说,实际就是相当于间接降低这个主频,减少这个震荡次数,比如我分频系数为72,那么我就是1S产生的震荡次数就是72000000/72=1000000次,相当于用少的计数来对一秒钟进行计数。

那么有人好奇了那么分频的好处是什么呢?

分频的好处:

时间精度控制:

(1)时间精度控制:分频器允许你准确地控制定时器的时间精度。通过减慢计数速度,你可以生成更精确的时间延迟,从而满足各种应用的时间精度需求。

举个例子:

你的STM32微控制器的主频是72MHz,这意味着每秒钟有72,000,000个时钟周期。如果你直接使用主频来控制定时器,那么时间精度可能会受到限制,因为一些操作可能需要更短的时间间隔。

为了提高时间精度,你可以使用分频器来降低定时器的计数速度。例如,你可以将分频器设置为72,000,这将使定时器每秒钟计数1,000次。这意味着你可以非常精确地测量时间间隔,因为每个计数周期的时间是1毫秒。如果需要更高的精度,你可以进一步降低分频器的值。

适应不同的时间间隔

(2)适应不同的时间间隔:使用分频器,你可以根据需要生成不同范围的时间间隔。如果需要较长的时间延迟,你可以降低计数速度。如果需要较短的时间间隔,你可以增加计数速度。这使得分频器非常灵活。

举个例子

长时间间隔:在某些情况下,你可能希望较长的时间间隔,例如每小时采集一次温度数据并上传到服务器。在这种情况下,你可以设置一个较大的分频器值,以降低计数器的计数速度,从而延长时间间隔。例如,如果你的主频是72MHz,可以将分频器设置为720,000,这将使计数器每秒钟计数720,000次,每个计数周期的时间为1秒。这样,你就可以在每秒钟计数一次,然后每小时上传一次数据。

短时间间隔:在其他情况下,你可能需要更短的时间间隔,比如每分钟采集一次数据并上传到服务器。在这种情况下,你可以减小分频器值,增加计数器的计数速度,从而缩短时间间隔。例如,将分频器设置为72,000,计数器每秒钟计数72,000次,每个计数周期的时间为0.01秒(10毫秒)。这样,你就可以在每10毫秒计数一次,然后每分钟上传一次数据。

(3)降低功耗:分频器允许你降低定时器或计数器的计数速度,从而降低系统的功耗。这对于需要在低功耗条件下运行的电池供电设备非常重要。

(4)提高系统稳定性:通过减慢计数速度,分频器可以提高定时器或计数器的稳定性。这有助于减小计数器的溢出频率,防止计数器在非常短的时间内溢出,从而导致错误。

(5)适应不同的时钟源:有些系统可能需要切换不同的时钟源,分频器可以帮助你调整计数器以适应不同的时钟源频率。

(2)关于外部时钟的问题

对于STM32来说使用外部晶体的32.768kHz的振荡器,因为频率比较低就不需要进行分频了。

那么怎么产生一个1s的一个数据的呢?下面进行计算

我们的RTC_CLK为32.768kHz也就是外部时钟,所以我们把PRL中写入32767即可,为2的15次方,为了能被32.768K进行整除所以我们进行+1操作,为了得到一个整数的计数。

那么我们产生1S的计数就为1。

从上述能知道TR_CLK输出必须为1s。如果产生一个0.15S的应该怎么实现呢?

有一个叫做RTC_DIV:预分频器余数寄存器和RTC_CNT:计数器寄存器的两个东西。重新配置一个0.15S的,我们将PRL设置为0,那么Ftr_clk等于32768。也就是在RTC_DIV装载为32768,因为DIV是自减的,并且从32768一直减少到0,所需要的时间为1s,所以减少一个数,所用的时间为1/32768s,那么减少多少个数,就计时了0.15s呢?

所以:1/32768s * n = 0.15,n = 0.15 * 32768,又因为DIV寄存器是可读的,所以我们就能实现0.15s的计时。

相关推荐
z20348315202 小时前
如何使用Micropython进行单片机开发(一)
单片机·嵌入式硬件·micropython
嵌入式×边缘AI:打怪升级日志6 小时前
C语言算术赋值运算复习笔记
c语言·stm32·单片机·算法·51单片机·proteus·代码
7yewh7 小时前
AM57X Processor SDK Linux - run Installer
linux·嵌入式硬件·硬件架构·嵌入式
光子物联单片机8 小时前
STM32传感器模块编程实践(十八)DIY电子游戏机模型
stm32·单片机·嵌入式硬件
風清掦9 小时前
【江科大STM32学习笔记-06】TIM 定时器 - 6.2 定时器的输出比较功能
笔记·stm32·单片机·嵌入式硬件·学习
2023自学中11 小时前
笔记本电脑 连接 手机WIFI,开发板网线连接笔记本,开发板 和 虚拟机 同时上网
linux·单片机·嵌入式硬件·tcp/ip
想放学的刺客17 小时前
整理了120道单片机嵌入式面试题与答案,覆盖了硬件电路和C语言等核心领域。
c语言·c++·stm32·单片机·嵌入式硬件·mcu·51单片机
Decksweeper17 小时前
【大一做毕设?十二天四人从零开始手搓智能小车!(基于rdk x5、stm32与yolo v5,小车可实现巡线,避障,识别与夹取特定物块)】
stm32·嵌入式硬件·yolo·课程设计
回不去的bug17 小时前
【STM32】玩转IIC之驱动MPU6050及姿态解算
stm32·单片机·嵌入式硬件·mpu6050
weixin_11223317 小时前
基于单片机的塑料厂房气体检测系统设计
单片机·嵌入式硬件