原创 为什么我用4M的晶体作时钟却总是不准?

2007-1-16 00:38 6193 7 7 分类: MCU/ 嵌入式


为什么我用4M的晶体作时钟却总是不准?
mood25.gif jameswl 发表于 2003-9-5 16:28 PIC 单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴


有人叫我换成4.194304M的晶体,不知道行不行。
谁能告诉我这是如何计算的?

用1M,4M,12M,16M这些人类认为的"整数倍"数肯定不好!
mood25.gif hotpower 发表于 2003-9-6 00:18 PIC 单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴


我是用的TMR0计时的
mood25.gif jameswl 发表于 2003-9-6 14:49 PIC 单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴


谁能告诉我时钟晶体的频率与实际计时秒数之间的关系是如何计算的?


jameswl:高人已给你选择了“准确的”晶振——4.194304M
mood25.gif hotpower 发表于 2003-9-6 20:58 PIC 单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴


如此之高人的高见为何不采纳??????????????

我为此高人难受!难受!难受!难受!难受!难受!难受!难受!

我上帖中的——用1M,4M,12M,16M这些人类认为的"整数倍"数肯定不好!

“人类”和“整数”是——关键词!!!!!!!!

jameswl:你遇到高人竟然不知?????????


可叹呀!!!!!!!!


时钟
mood25.gif xmljx 发表于 2003-9-7 01:19 PIC 单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴


用定时器的自动装载定时,可以说时钟的精确度就只决定于晶振的精确度了.


楼上的说的好——但在时钟和波特率应用方面非整数误差小
mood25.gif hotpower 发表于 2003-9-7 05:02 PIC 单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴


4.194304M在4分频后为4.194304M/4=1048576Hz=0X100000Hz
1048576Hz对于人类是非整数!肯定不如1MHz好记!!!
但0X100000Hz在计算机“眼里”确成了整数!!!
即在 8位计数器中0X100000Hz=0X1000*0X100Hz
  在16位计数器中0X100000Hz=0X10*0X10000Hz
若采用16分频后
即在 8位计数器中0X100000Hz=0X10*0X100*0X100Hz
  在16位计数器中0X100000Hz=0X10*0X1*0X10000Hz
若采用256分频后
即在 8位计数器中0X100000Hz=0X100*0X10*0X100Hz
  在16位计数器中0X100000Hz=0X100*0X1*0X10000Hz
依此类推
若采用...分频后
...............
...............

故可得出结论——XXXXXXXX(略)
所以,在PIC应用中:
若采用4.194304M晶振,16位计数器,256分频后
则定时1S时间到后,恰好计数器溢出!!!

即使定时器无自动装载方式也无妨!!!
由于不管计数器是+1器或-1器,计数器溢出后都会自动“归零”!!!
不就成了“自动装载方式”了吗????

所以,“用1M,4M,12M,16M这些人类认为的"整数倍"数肯定不好!”


PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条