根据手册上定时周期的计算公式,定时周期=((65536-)*12)/SYSclk,TM0PS=0,进行公式变换后,得到=65536-((定时周期*SYSclk)/12)。
将定时周期0.01S代入公式,得到=56320,换成十六进制为0xDC00。
按照楼主计算公式:
#define Timer0_Reload (65536UL -(MAIN_Fosc / 1105))
Timer0_Reload =65536-(11059200/1105) = 65536-10008 = 55528,换成十六进制为0xD8E8
定时不准确的原因还是在于楼主计算自动重载值 计算方式错误导致时间有误差。
改成:#define Timer0_Reload 65536-((0.01*SYSclk)/12) 就可以了。
如果对于手册上定时器的内容不是特别掌握,建议直接去ISP工具的定时器计算器输入时间可以直接得到代码。
好的,谢谢了{:4_269:} soma 发表于 2024-6-12 22:21
11059200,12T模式一个周期相当于1.085us。10ms=10000us,=9216周期。换算是dc00.你的算出来是e800. ...
好的,我改改,谢谢了 qike009 发表于 2024-6-13 06:07
这个才是零误差
好的,谢谢了哦
页:
1
[2]