找回密码
 立即注册

帮忙,我设置主时钟为11.0592M,12T模式,定时时间是不是1秒?

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:445
  • 最近打卡:2025-04-30 07:32:43

9

主题

85

回帖

1654

积分

金牌会员

积分
1654
发表于 2024-6-13 09:41:17 | 显示全部楼层
楼主,你这个是定时10ms(0.01S)进一次中断程序,每累计100次*10ms达到1S定时。

根据手册上定时周期的计算公式,定时周期=((65536-[TH0,TL0])*12)/SYSclk,TM0PS=0,进行公式变换后,得到[TH0,TL0]=65536-((定时周期*SYSclk)/12)。
将定时周期0.01S代入公式,得到[TH0,TL0]=56320,换成十六进制为0xDC00。

按照楼主计算公式:
#define Timer0_Reload   (65536UL -(MAIN_Fosc / 1105))

Timer0_Reload =65536-(11059200/1105) = 65536-10008 = 55528,换成十六进制为0xD8E8


定时不准确的原因还是在于楼主计算自动重载值 [TH0,TL0] 计算方式错误导致时间有误差。
改成:#define Timer0_Reload   65536-((0.01*SYSclk)/12) 就可以了。

如果对于手册上定时器的内容不是特别掌握,建议直接去ISP工具的定时器计算器输入时间可以直接得到代码。

手册计算公式

手册计算公式

自己做个表格也可以得到重载值

自己做个表格也可以得到重载值
永远相信美好的事情即将发生!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-6-14 09:43:18 | 显示全部楼层
好的,谢谢了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-6-14 09:44:50 | 显示全部楼层
so*** 发表于 2024-6-12 22:21
11059200,12T模式一个周期相当于1.085us。10ms=10000us,=9216周期。换算是dc00.你的算出来是e800. ...

好的,我改改,谢谢了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-6-14 09:45:10 | 显示全部楼层
qike*** 发表于 2024-6-13 06:07
这个才是零误差

好的,谢谢了哦
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 06:38 , Processed in 0.113544 second(s), 67 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表