打印
[ZLG-ARM]

NXP的ARM7时钟设置好像有问题,请ZLG指点

[复制链接]
1564|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gotomy|  楼主 | 2008-7-4 15:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用的LPC2220的CPU,OSC为11.0592MHz,用的ZLG实例中的时钟设置,如下:

//时钟定义
#define Fosc            11059200 
#define Fcclk           (Fosc * 4) 
#define Fcco            (Fcclk * 4)
#define Fpclk           (Fcclk / 4) * 1

//时钟设置流程
PLLCON = 1;
    
#if (Fpclk / (Fcclk / 4)) == 1
    VPBDIV = 0;
#endif
#if (Fpclk / (Fcclk / 4)) == 2
    VPBDIV = 2;
#endif
#if (Fpclk / (Fcclk / 4)) == 4
    VPBDIV = 1;
#endif

#if (Fcco / Fcclk) == 2
    PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5);
#endif
#if (Fcco / Fcclk) == 4
    PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5);
#endif
#if (Fcco / Fcclk) == 8
    PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5);
#endif
#if (Fcco / Fcclk) == 16
    PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5);
#endif
    PLLFEED = 0xaa;
    PLLFEED = 0x55;
    while((PLLSTAT & (1 << 10)) == 0);
    PLLCON = 3;
    PLLFEED = 0xaa;
    PLLFEED = 0x55;


写了一个延时函数如下,实验下来该函数执行80000次约是1秒,约每执行一次12.5微秒,重复执行的就5条指令,执行一次怎么会这么长时间?
while(--i)
{
   asm("CMP R1,#0");
}

该延时函数反汇编如下:


相关帖子

沙发
ZlgArm| | 2008-7-5 11:55 | 只看该作者

楼主

您好!
  精确定时请尽量使用定时器来定时。您还可在本版面搜索时钟周期,了解相关信息。
                                                             By ltt

使用特权

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

本版积分规则

43

主题

93

帖子

0

粉丝