打印
[其它应用]

SH79F085默认系统频率异常

[复制链接]
923|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
数据手册上,上电默认系统频率为128KHZ,12分频,然后我设置为不分频,但是实测P0.6口,频率为6.378KHZ,请教一下大神,这是什么原因呀?
附代码:
void        main(void)
{
        CLKCON = 0;       
        P0CR        |=        0x4F;   
        P0_6        =        0;
        while(1)
        {
            P0_6 ^= 1;
        }
}
沙发
ayb_ice| | 2018-4-8 14:46 | 只看该作者
CPU处理需要时间

使用特权

评论回复
板凳
xwinter|  楼主 | 2018-4-8 14:57 | 只看该作者
ayb_ice 发表于 2018-4-8 14:46
CPU处理需要时间

也就是说这个频率是正常的吗?

使用特权

评论回复
地板
ayb_ice| | 2018-4-8 15:25 | 只看该作者
xwinter 发表于 2018-4-8 14:57
也就是说这个频率是正常的吗?

有可能,具体需要计算指令运行时间

使用特权

评论回复
评论
xwinter 2018-4-9 09:50 回复TA
不好意思,我不知道怎么计算,但是我就觉得和系统频率相差有点多,现在这个指令周期是10个指令周期,正常吗? 
lyjian 2018-4-8 20:46 回复TA
@xwinter :你这理论怎么算出来的? 
xwinter 2018-4-8 16:07 回复TA
SYSCLK:系统时钟,系统频率分频器的输出时钟。这个时钟为CPU指令周期的时钟。我是不分频,理论应该是128K,现在差的有点多呀 
5
ayb_ice| | 2018-4-9 08:23 | 只看该作者
一个取反指令, 一个跳转指令,对照指令表看看需要多少周期

使用特权

评论回复
6
xwinter|  楼主 | 2018-4-9 09:48 | 只看该作者
ayb_ice 发表于 2018-4-9 08:23
一个取反指令, 一个跳转指令,对照指令表看看需要多少周期

一共10个指令周期,然后现在频率相差20倍,这样正常吗?

Q}FHSD$AHWN4RWZ]KT3XNGK.png (17.75 KB )

Q}FHSD$AHWN4RWZ]KT3XNGK.png

使用特权

评论回复
7
ayb_ice| | 2018-4-9 09:51 | 只看该作者
本帖最后由 ayb_ice 于 2018-4-9 09:53 编辑
xwinter 发表于 2018-4-9 09:48
一共10个指令周期,然后现在频率相差20倍,这样正常吗?

明明是两倍,哪是20倍128/10=12.8

其实是对的,高低各占一个循环,结果本来就要除以2,完全正确


使用特权

评论回复
8
xwinter|  楼主 | 2018-4-9 14:56 | 只看该作者
ayb_ice 发表于 2018-4-9 09:51
明明是两倍,哪是20倍128/10=12.8

其实是对的,高低各占一个循环,结果本来就要除以2,完全正确

非常感谢大神的解析,就此结贴,供大家参考

使用特权

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

本版积分规则

3

主题

12

帖子

0

粉丝