[技术问答]

N76E003定时器的初值计算问题

[复制链接]
2681|10
手机看帖
扫描二维码
随时随地手机跟帖
hk386|  楼主 | 2018-5-18 09:51 | 显示全部楼层 |阅读模式
#define TH0_INIT        0x00 //5.0ms@XTAL=12MHz, Period = (10.85/2) ms@XTAL=22.1184MHz
#define TL0_INIT        0x80
这个是怎么计算出来的,程序经过12分频,频率是12M,T0用的是模式0,那么初值应该是,8192-5*10^-3/10^-6=3192(0x0c78)跟上面的值不同,有人可以帮我看看是怎么计算的吗????
734774645| | 2018-5-18 10:44 | 显示全部楼层
你用的有源晶振?

使用特权

评论回复
734774645| | 2018-5-18 11:03 | 显示全部楼层
看了例子里的备注,感觉是糊弄呢。
#define TH0_INIT        0xFC //5.0ms@XTAL=12MHz, Period = (10.85/2) ms@XTAL=22.1184MHz
#define TL0_INIT        0x0F
#define TH1_INIT        0xE0 //2.5ms@XTAL=12MHz, Period = (5.425/2) ms@XTAL=22.1184MHz
#define TL1_INIT        0x00

使用特权

评论回复
734774645| | 2018-5-18 11:04 | 显示全部楼层
#define RELOAD_VALUE_H  (65536-1500)/256
#define RELOAD_VALUE_L  (65536-1500)%256

计算是这么算。

使用特权

评论回复
734774645| | 2018-5-18 11:04 | 显示全部楼层
因为加1计时嘛,定义1500个计时周期就用上面的方法。

使用特权

评论回复
mintspring| | 2018-5-19 07:51 | 显示全部楼层
自己实测一下看看是不是有问题啊

使用特权

评论回复
mintspring| | 2018-5-19 07:52 | 显示全部楼层
新唐例子有个坑,就是编写例子的,经常是拿别的例子修改,然后备注什么的,都他娘的不改,有的标题都忘了改。

使用特权

评论回复
hk386|  楼主 | 2018-5-19 09:08 | 显示全部楼层
734774645 发表于 2018-5-18 11:04
#define RELOAD_VALUE_H  (65536-1500)/256
#define RELOAD_VALUE_L  (65536-1500)%256

1500怎么来的,还有(65536-1500)/256=FA,这样也不对,12M频率,分频12,那么频率为1M,周期=1/T=10^-6S=1uS 如果用模式1,那么计数65536,那么时间是65536US=65.536mS,定时5ms的初值=65536-5ms*12/12*10^6=65536-5000=60536=0xec78

使用特权

评论回复
wahahaheihei| | 2018-5-19 21:49 | 显示全部楼层
楼主有这个芯片没,可以实际测量一下试试

使用特权

评论回复
xuanhuanzi| | 2018-5-19 22:06 | 显示全部楼层
别看后面的备注,我看好几个都这么写的备注,前面还不同。你用多少,你根据手册的说明自己配置

使用特权

评论回复
yiy| | 2018-5-20 14:35 | 显示全部楼层
这个备注可能有问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

593

帖子

0

粉丝