哪位大虾帮帮我解决一个预分频的问题?小M感激不尽。。。

[复制链接]
 楼主| liuyj226 发表于 2007-8-29 17:09 | 显示全部楼层 |阅读模式
现在公司用盛群,我看到都有用到预分频。我想请教一下一个8位MCU,假如一个指令周期的时间是1US,我设定定时器初植为00H,计数到FFH,采用PS0—PS2是111(8分频),执行一次定时中断益出的时间是不是就是255*256US。
太阳之母 发表于 2007-8-29 17:16 | 显示全部楼层

嘿嘿

MCU的具体型号是啥?数据手册有否?
gjg191 发表于 2007-8-29 17:23 | 显示全部楼层

dd

分频是对时钟而言的,如果是单指令周期,8m晶振 8分频的话 指令周期就为1us 那你定时00到ff就为256us 
gjg191 发表于 2007-8-29 17:26 | 显示全部楼层

dd

盛群不就是合泰阿,我晕都给忘了,俺也用过
gjg191 发表于 2007-8-29 17:34 | 显示全部楼层

dd

用4m晶振 8分频 计一个数20us   设定定时器初植为00H,计数到FFH,采用PS0—PS2是111(8分频),执行一次定时中断益出的时间是5120us
 楼主| liuyj226 发表于 2007-8-30 08:03 | 显示全部楼层

对啊就是HOLTEK啊

gjg191,先谢谢你。我问题可能有一点没表述清楚。8位MCU,用4M晶振(一个指令周期4个时钟周期),设定定时器初植为00H,计数到FFH,采用PS0—PS2是111(256分频),执行一次定时中断益出的时间是256*256US???
gjg191 发表于 2007-8-30 08:07 | 显示全部楼层

dd

昨天都说错了,算错数了,你用256/4=64us就是计一个数的时间,你那应该是256*64=16.384ms
gjg191 发表于 2007-8-30 08:10 | 显示全部楼层

dd

MM做家电吗?
computer00 发表于 2007-8-30 08:25 | 显示全部楼层

1us的周期,8分频,再256次计数,就是256*8us

 楼主| liuyj226 发表于 2007-8-30 08:25 | 显示全部楼层

111

gjg191 一个指令周期4个时钟周期不是还要*4,1/4*4*256*256
 楼主| liuyj226 发表于 2007-8-30 08:27 | 显示全部楼层

晕了晕了我,怎么都有几种答案啊。。。。

gjg191 发表于 2007-8-30 08:27 | 显示全部楼层

方法

看了看资料还真是1指令周期4时钟周期,不过定时器的分频是从系统时钟得来的所以跟指令周期无关。
定义预分频器级数,PSC2、PSC1、PSC0=
000:fINT= fSYS/2 或fRTC/2
001:fINT= fSYS/4 或fRTC/4
010:fINT= fSYS/8 或fRTC/8
011:fINT= fSYS/16 或fRTC/16
100:fINT= fSYS/32 或fRTC/32
101:fINT= fSYS/64 或fRTC/64
110:fINT= fSYS/128 或fRTC/128
111:fINT= fSYS/256 或fRTC/256
这些都是从外部时钟或内部时钟得来的
gjg191 发表于 2007-8-30 08:43 | 显示全部楼层

dd

都是2年前用过,都不记得了,看了资料才明白。应该对的,定时器跟指令周期无关,只跟系统时钟有关系
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

236

帖子

2

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

26

主题

236

帖子

2

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