搜索

[技术问答] HC32F003外接晶振使用定时器是怎样获得定时器初值的?

[复制链接]
581|7
 楼主 | 2019-9-2 13:26 | 显示全部楼层 |阅读模式
有无辅助计算软件?

使用特权

评论回复
| 2019-9-3 15:25 | 显示全部楼层
你说的定时器初值是指什么?

使用特权

评论回复
 楼主 | 2019-9-4 10:40 | 显示全部楼层
martinhu 发表于 2019-9-3 15:25
你说的定时器初值是指什么?

例如我要定时2MS,不就要送个初始值进寄存器里,不同的晶振频率有不同的数值,这个数值怎样获得?

使用特权

评论回复

评论

martinhu 2019-9-4 11:08 回复TA
这个自己算一下就好了吧,比如你使用的外部晶振是32M,定时器不分频,使用PCLK时钟就是XTH时钟32M,如果你要定时1ms,BT的计数初值和重载值就是0x10000-32000,ADT的计数初值和PARAR就是32000. 
| 2019-9-7 00:07 | 显示全部楼层
定时器这个东西不复杂滴  跑4M系统时钟  2分频之后就是2M   一个指令就是0.5us  若是u16ArrData = 100;那种中断时间就是50us一个周期。u16ArrData就是计数极限值。憋人有幸计算过,误差在0.2us.  华大代理商 深圳Manson  QQ:791941179

使用特权

评论回复

评论

martinhu 2019-9-7 16:14 回复TA
有些定时器,周期 = 0x10000 - ARR,也就说 ARR = 0x10000 - 周期值,实际应用请参考手册 
| 2019-10-11 15:51 | 显示全部楼层
计数值 = 定时时间(微秒)x时钟频率(Mhz)
过程
第一步. 1/时钟频率(Mhz)=1个计数周期时间(微秒)*计数值=定时时间(微秒)
第二步. 计数值/时钟频率(Mhz)=定时时间(微秒)
如:定时1毫秒,时钟频率32M
      1000*32=32000个计数值
华大基本定时器是向上计数,16位计数寄存器最大值是65536,计数器初值=65536-32000=33536,16位自动重装载的值也是33536,定时1毫秒就是这样来的

使用特权

评论回复
| 2019-10-12 08:14 | 显示全部楼层
华大的话 估计没有

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表