打印
[其它应用]

如何配置为内部16.6MHz时钟

[复制链接]
1023|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangzsa|  楼主 | 2014-10-19 10:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何配置为内部16.6MHz时钟
沙发
zhuww| | 2014-10-19 10:39 | 只看该作者
用代码选项来配置

使用特权

评论回复
板凳
wangzsa|  楼主 | 2014-10-19 10:40 | 只看该作者
上电默认是什么时钟?

使用特权

评论回复
地板
wangzsa|  楼主 | 2014-10-19 10:41 | 只看该作者
上电默认是什么时钟?

使用特权

评论回复
5
zhuww| | 2014-10-19 10:42 | 只看该作者
上电默认为低频RC 128k

使用特权

评论回复
6
wangzsa|  楼主 | 2014-10-19 10:43 | 只看该作者
下面的代码是否可行?
void ClockInit (void)
{
      int i;

     CLKCON |= 0x08;
      for (i = 0; i < 2000; i++);
      CLKCON |= 0x04;
      /*
      CLKCON = 0x00;
      */
}

使用特权

评论回复
7
zhanglli| | 2014-10-19 10:46 | 只看该作者
程序应该OK

使用特权

评论回复
8
lium| | 2014-10-19 10:47 | 只看该作者
步骤(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);

使用特权

评论回复
9
guoyt| | 2014-10-19 10:49 | 只看该作者
zhuww 发表于 2014-10-19 10:42
上电默认为低频RC 128k


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

使用特权

评论回复
10
hanwe| | 2014-10-19 10:51 | 只看该作者
wangzsa 发表于 2014-10-19 10:43
下面的代码是否可行?
void ClockInit (void)
{


看上去是没有什么问题,就是用循环来延时这种方式,精确度较低,如果对于时间精度要求不高的话,可以使用。

使用特权

评论回复
11
wangzsa|  楼主 | 2014-10-19 10:52 | 只看该作者
多谢,配置代码选项,在代码里初始化时钟(打算用16.6MHz内部),然后让P1.0在大循环里拉高拉低,用示波器测频率。
代码如下:
void PortInit (void)                                // 端口初始化
{
      P1CR = P1CR | 0x01;                       // 输出模式
}

while (1)
{
          P1 = 0x01;                                  // 高电平
       P1 = 0x00;                                  // 低电平
}
测得方波频率为139.0kHz,是否意味着时钟配置不成功?问题出在哪呢?

使用特权

评论回复
12
zhuww| | 2014-10-19 10:53 | 只看该作者
这样做肯定是不对的,那么短的时间里IO口电平状态是不准的。

使用特权

评论回复
13
wangzsa|  楼主 | 2014-10-19 10:55 | 只看该作者
哦,那应该?

使用特权

评论回复
14
zhuww| | 2014-10-19 10:57 | 只看该作者
建议用定时器来测试:切换为高频后,设置定时器的时钟源为系统时钟,设置好一个足够长的定时时间,每次进入定时中断处理就反转一次IO的状态,然后用示波器来查看。

使用特权

评论回复
15
yufe| | 2014-10-19 10:58 | 只看该作者
139k应该是配置成功了,你while(1) 里面反转IO指令2条,跳转指令1条,大概要10个周期,所以system clock 约为139*10=1390kHz. 高频有12分频的(CLOCKCON中设置),所以差不多哦

使用特权

评论回复
16
wangzsa|  楼主 | 2014-10-19 10:59 | 只看该作者
我也是这样想的。我把取消分频后为1.66MHz,一开始我还以为操作口线只要1个机器周期呢

使用特权

评论回复
17
guoyt| | 2014-10-19 11:03 | 只看该作者
呵呵,这个确实有点麻烦

使用特权

评论回复
18
amw1688| | 2014-10-21 15:28 | 只看该作者
中颖代理那家强
加Q聊后就知详
技术价格那家好
加Q相当获到宝.
QQ:2714266616

使用特权

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

本版积分规则

914

主题

9040

帖子

5

粉丝