单片机定时计数器初值的计算?

时间:2021-08-14 23:32:03
百度的计算结果是怎样算的 ?50ms/1.085us=54253 ?结果怎么是54253呢?而不是46083 ?
晶振11.592MHz,是不是误导新人?

4 个解决方案

#1


没有上下文,谁知道是怎么回事,
单计算的话50ms/1.085us=46083 ,这个小学生应该都懂

#2


什么片子,什么设置啊?

#3


11.592MHz的51吗?
12T的还是1T单周期的?

#4


定时器初值计算公式:
定时时间=(x-y)×机器周期
其中x为定时器最大计数值,着有定时器的工作方式决定的,比如工作在方式1,x就是2^16
其中y就是定时器初值。
举个例子:比如一个单片机计时器0工作在方式1下,晶振频率为11.059M,需要定时5毫秒,则计算如下:
根据公式
定时时间=(x-y)×机器周期,则定时时间=5×10^(-3),x=2^16,机器周期=12/(11.059×10^6)
0.5=(2^16-y)×(12/(11.059×10^6))
据此计算出y=60928,即定时器初始值为60928

#1


没有上下文,谁知道是怎么回事,
单计算的话50ms/1.085us=46083 ,这个小学生应该都懂

#2


什么片子,什么设置啊?

#3


11.592MHz的51吗?
12T的还是1T单周期的?

#4


定时器初值计算公式:
定时时间=(x-y)×机器周期
其中x为定时器最大计数值,着有定时器的工作方式决定的,比如工作在方式1,x就是2^16
其中y就是定时器初值。
举个例子:比如一个单片机计时器0工作在方式1下,晶振频率为11.059M,需要定时5毫秒,则计算如下:
根据公式
定时时间=(x-y)×机器周期,则定时时间=5×10^(-3),x=2^16,机器周期=12/(11.059×10^6)
0.5=(2^16-y)×(12/(11.059×10^6))
据此计算出y=60928,即定时器初始值为60928