SH79F085时钟配置?

[复制链接]
 楼主| zenwall 发表于 2011-6-1 09:09 | 显示全部楼层 |阅读模式
如题,
1.如何配置为内部16.6MHz时钟?
2.上电默认是什么时钟?
3.下面的代码是否可行?
void ClockInit (void)
{
    int i;

    CLKCON |= 0x08;
    for (i = 0; i < 2000; i++);
    CLKCON |= 0x04;
    /*
    CLKCON = 0x00;
    */
}
bananarer 发表于 2011-6-1 10:30 | 显示全部楼层
用代码选项来配置;上电默认为低频RC 128k;
你的程序应该OK,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
neyo.zhong 发表于 2011-6-1 10:48 | 显示全部楼层
本帖最后由 neyo.zhong 于 2011-6-1 10:52 编辑

楼主,你好。
79F085没有用过,帮你看了79F085的规格书,简单给你讲讲,由于没有用过,只是凭着经验和对规格书的了解,有可能存在错误。

79F085有个CLKCON寄存器是用来设置系统时钟,具体见看规格书第28页。
1.如何配置为内部16.6MHz时钟?
答:步骤(1)将KeilC51的代码选型中的OP_OSC设置如下:
         选择第一项:低频使用内部128KHz RC,高频使用内部16.6MHz RC;
         选择第三项:低频使用外部32KHz CRY,高频使用内部16.6MHz RC。
      步骤(2)程序中开启高频振荡器控制位HFON:
          CLKCON |= Bin(00001000);
      步骤(3)延时2ms以上
      步骤(4)程序中开启高频振荡器选择位FS:
          CLKCON |= Bin(00000100);

2.上电默认是什么时钟:
答:上电复位后,IC默认为低频时钟,如果你OP_OSC位选择的是1,那么就是128KHz内部RC,选择3,那么就是32KHz外部晶振。

3.下面的代码是否可行:
答:看上去是没有什么问题,就是用循环来延时这种方式,精确度较低,如果对于时间精度要求不高的话,可以使用。
 楼主| zenwall 发表于 2011-6-1 10:51 | 显示全部楼层
谢谢楼上两位的热心!!!我仔细看看,非常感谢!!:)
neyo.zhong 发表于 2011-6-1 10:51 | 显示全部楼层
呵呵,每次在回答的时候Bananrer兄也在回答,点“发布回覆”总是比他慢。
 楼主| zenwall 发表于 2011-6-1 11:12 | 显示全部楼层
再次感谢楼上两位!!小弟还有个小问题,不好意思麻烦了,嘿嘿。
按照您的提示,配置代码选项,在代码里初始化时钟(打算用16.6MHz内部),然后让P1.0在大循环里拉高拉低,用示波器测频率。
代码如下:
void PortInit (void)                                // 端口初始化
{
    P1CR = P1CR | 0x01;                       // 输出模式
}

while (1)
{
        P1 = 0x01;                                  // 高电平
     P1 = 0x00;                                  // 低电平
}
测得方波频率为139.0kHz,是否意味着时钟配置不成功?问题出在哪呢?
neyo.zhong 发表于 2011-6-1 11:44 | 显示全部楼层
这样做肯定是不对的,那么短的时间里IO口电平状态是不准的。
建议用定时器来测试:切换为高频后,设置定时器的时钟源为系统时钟,设置好一个足够长的定时时间,每次进入定时中断处理就反转一次IO的状态,然后用示波器来查看。
 楼主| zenwall 发表于 2011-6-1 12:05 | 显示全部楼层
谢谢楼上的提示,我试试。
bananarer 发表于 2011-6-1 12:50 | 显示全部楼层
再次感谢楼上两位!!小弟还有个小问题,不好意思麻烦了,嘿嘿。
按照您的提示,配置代码选项,在代码里初始化时钟(打算用16.6MHz内部),然后让P1.0在大循环里拉高拉低,用示波器测频率。
代码如下:
void PortIni ...
zenwall 发表于 2011-6-1 11:12


139k应该是配置成功了,你while(1) 里面反转IO指令2条,跳转指令1条,大概要10个周期,所以system clock 约为139*10=1390kHz. 高频有12分频的(CLOCKCON中设置),所以差不多哦
 楼主| zenwall 发表于 2011-6-1 13:25 | 显示全部楼层
:)谢谢楼上,我也是这样想的。我把取消分频后为1.66MHz,一开始我还以为操作口线只要1个机器周期呢,嘎嘎。多谢各位的回答,谢谢了。
 楼主| zenwall 发表于 2011-6-1 13:28 | 显示全部楼层
结贴了,多谢各位,因为只有5分,所以就不平均了,:lol,两位前辈真热心!!
lolp 发表于 2011-6-2 13:52 | 显示全部楼层
高手就高手呀
lolp 发表于 2011-6-2 13:53 | 显示全部楼层
回答的好细致呢
zhanxiage110 发表于 2011-12-14 16:14 | 显示全部楼层
有帮助
千岛水神 发表于 2011-12-15 16:51 | 显示全部楼层
请问LS:为何在我的KEIL软件中不能打开 代码选项设置?我安装了插件,能找到中颖的SH79F085 MCU,我用的是C语言编写程序。在目标属性中我的KEIL 只有水平方向的8个页面选择。请问是软件版本不对吗?谢谢回答先。
千岛水神 发表于 2011-12-15 16:54 | 显示全部楼层
在指南和LS们的解答中,目标属性在水平方向有10个页面的选择。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

141

帖子

1

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