豪人最有爱 发表于 2022-5-7 17:07

定时器的初值算出来是个小数怎么办?

设单片机时钟 fosc =11.0592 MHz ,利用定时器T1在P1.1产生频率25 kHz ,占空比 80%的矩形波。但定时器的初值算出来是个小数怎么办?

资深技术 发表于 2022-5-7 17:31

取频率大于25k的数值,在定时器里加延时修正误差

xch 发表于 2022-5-7 23:17

改数学教材。

R2D2 发表于 2022-5-7 23:26

不用办。没有误差是不可能的,就算你算出来整数一样有误差。

lyjian 发表于 2022-5-8 09:29

这点误差,直接忽略

tyw 发表于 2022-5-8 09:54




cjseng 发表于 2022-5-8 12:03

小数问题不大,问题是进中断、堆栈处理、定时器重新赋值等等,都需要时间,这些时间加起来,远超过小数的那点误差了。

aple0807 发表于 2022-5-8 14:19

要看允许误差范围的,计算0误差也没用,晶振本身还有误差。

天意无罪 发表于 2022-5-9 09:36

定时器的初值算出来是个小数怎么办?

定时器计数是不是整数和你的频率有关,不一定都是整数的,有小数也没有问题,直接取整数,关键是看误差是否在允许范围内。

chunyang 发表于 2022-5-9 14:41

换晶体,频率应为整数的,比如12M、16M之类,然后计算验证是否满足。

艾伦183 发表于 2022-5-30 17:27

定时器的初值算出来是个小数怎么办?

有小数很正常,就好比串口的波特率有时候也会出现小数,但是能够正常运行(正常发送接收数据),这就说明在误差范围内就可以满足要求,不影响使用。所以根据自己的需求来定,实在不行就根据定时器的分频和周期反推来配置一个接近你所需要频率的值。
页: [1]
查看完整版本: 定时器的初值算出来是个小数怎么办?