打印

请问中颖的2051/4051MCU机器周期是多少?号称1T能达到吗

[复制链接]
3942|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hwk612167|  楼主 | 2011-8-11 10:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如我用内部16.6MHz晶振,准备用定时器定时10ms,定时器时钟源为系统时钟源12分频,按1T计算,16.6/12*10^3 ~= 13833。实际使用时发现时间很慢,按照12T计算,16.6/12/12 * 10^3 ~= 1153才感觉差不多。
这是怎么回事呢,需要设置什么寄存器来选择几T的???
补充;另有全局变量,每10ms中断加1,加到100就是1s来判断得。
沙发
neyo.zhong| | 2011-8-11 11:03 | 只看该作者
系统时钟频率是可以调节的,通过对CLKCON寄存器的设置,可以设置系统时钟为振荡器的一分频、二分频、四分频以及十二分频

使用特权

评论回复
板凳
bananarer| | 2011-8-11 11:34 | 只看该作者
CLKCON寄存器可以设置的。默认为12分频

使用特权

评论回复
地板
hwk612167|  楼主 | 2011-8-11 12:38 | 只看该作者
谢谢两位版主解惑,回家再试下。

使用特权

评论回复
5
zwll| | 2011-8-11 13:22 | 只看该作者
楼主受宠若惊啊,哈哈

使用特权

评论回复
6
autopccopy| | 2011-8-12 11:20 | 只看该作者
很多号称1T的51,实际应用中综合速度为6倍左右,即是约2T。:)

使用特权

评论回复
7
bananarer| | 2011-8-12 11:41 | 只看该作者
ls说的对,应该是6倍左右。

使用特权

评论回复
8
zxcscm| | 2011-8-12 15:52 | 只看该作者
我也一直没确定定时器的时钟源到底是多少,看了这个帖子多少有点依据了

使用特权

评论回复
9
gongche| | 2011-8-12 20:19 | 只看该作者
我也一直没确定定时器的时钟源到底是多少,看了这个帖子多少有点依据了
zxcscm 发表于 2011-8-12 15:52
深有同感啊

使用特权

评论回复
10
缥缈九哥| | 2011-8-14 10:31 | 只看该作者
能达到,要软件改。

使用特权

评论回复
11
缥缈九哥| | 2011-8-14 10:31 | 只看该作者
改CLKON

使用特权

评论回复
12
lord_fan| | 2011-8-22 08:16 | 只看该作者
额。机器周期不确定 约6倍? 那做硬件时钟岂不是很不准?

使用特权

评论回复
13
bananarer| | 2011-8-22 09:57 | 只看该作者
ls, 不知道您说的机器周期是什么,我们说的6倍是平均下来,每一条指令的执行时间约为12T的6倍。
硬件时钟是用的系统时钟,这个是由CLKCON寄存器控制的。是固定的

使用特权

评论回复
14
gongche| | 2011-8-22 10:33 | 只看该作者
含糊不清啊

使用特权

评论回复
15
lord_fan| | 2011-8-24 08:58 | 只看该作者
ls, 不知道您说的机器周期是什么,我们说的6倍是平均下来,每一条指令的执行时间约为12T的6倍。
硬件时钟是用的系统时钟,这个是由CLKCON寄存器控制的。是固定的 ...
bananarer 发表于 2011-8-22 09:57

12分频 : 一个时钟周期:1/(16.6m/12)  

12T:   一个机器周期{1/(16.6m/12)}*12

1T:  一个机器周期{1/(16.6m/12)}*X   
             X约等于6.那一个机器周期执行nop不久是约等于某个时间?那就是执行某指
             令的时间是不确定的?

使用特权

评论回复
16
bananarer| | 2011-8-24 12:59 | 只看该作者
好吧,应该是这样说
12T:   一个机器周期{1/(16.6m/12)}
1T:  一个机器周期   1/16.6m   

如果执行NOP,那么就一个机器周期,则1T cpu的执行速度是12T cpu 的12倍。
但是其他的指令,例如:SJMP, 1T cpu需要5个机器周期才能执行完成,而12T cpu只需要 2个机器周期才能执行完成。这个时候,1T的cpu执行速度为12T cpu的4.8倍。
综合来说,大概执行一堆指令,1T的cpu是12T cpu的6倍左右

使用特权

评论回复
17
lord_fan| | 2011-8-27 10:04 | 只看该作者
好吧,应该是这样说
12T:   一个机器周期{1/(16.6m/12)}
1T:  一个机器周期   1/16.6m   

如果执行NOP,那么就一个机器周期,则1T cpu的执行速度是12T cpu 的12倍。
但是其他的指令,例如:SJMP, 1T cpu需要5个 ...
bananarer 发表于 2011-8-24 12:59

谢谢。你这个是预分频为1.而不是12吧?

使用特权

评论回复
18
冰清玉洁| | 2011-8-28 17:21 | 只看该作者
版主真耐心,呵呵

使用特权

评论回复
19
lord_fan| | 2011-8-28 20:49 | 只看该作者
版主真耐心,呵呵
冰清玉洁 发表于 2011-8-28 17:21

是啊。我说的有错了? 预分频1?

使用特权

评论回复
20
elecintop| | 2011-8-30 10:48 | 只看该作者
来学习的!:D

使用特权

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

本版积分规则

个人签名:前进 前进 前进

20

主题

511

帖子

3

粉丝