智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3143|回复: 2
打印 上一主题 下一主题

在PLL程序中死循环了

[复制链接]

0

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
345
威望
261
贡献
66
兑换币
44
注册时间
2009-2-22
在线时间
9 小时
跳转到指定楼层
1#
发表于 2009-4-18 00:26:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在程序中怎么都死住了,应该是在while(CRGFLG_LOCK!=1);这里没办法跳过,大家有遇见同样的问题么?


REFDV=0x03;//Divide OSCCLK by REFDV+1=4,REFCLK=16M
SYNR=0x09;//Multiply by SYNR+1=10,PLLCLK=2*16M*10/4=80M
while(CRGFLG_LOCK!=1);//Wait Till VCO Run Stable
CLKSEL_PLLSEL=0x01;//PLLCLK Enabled,Bus Clock=PLLCLK/2=40M      //////////////////////////
FCLKDIV=0x0F;//Flash Clock Divide Factor 16M/16=1M

14

主题

929

帖子

1

精华

功勋会员

WJ

Rank: 10Rank: 10Rank: 10

积分
6304

特殊贡献奖章

威望
1456
贡献
4674
兑换币
17
注册时间
2008-4-6
在线时间
87 小时
2#
发表于 2009-4-18 15:13:04 | 只看该作者
本帖最后由 whut_wj 于 2009-4-18 15:14 编辑

while(CRGFLG_LOCK!=1);
这个是时钟倍频之后等待时钟同步,是PLL提供总线时钟的保证。
这句话通不过就明倍频没成功
对于老单核单片机来说,特别是DT系更的,40M倍频有些问题。

检查DG128的晶振及倍频外围配置,要么重新制板。

你的这个情况应该是出现在DG128里的,XS128的倍频外围配置简单。
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
345
威望
261
贡献
66
兑换币
44
注册时间
2009-2-22
在线时间
9 小时
3#
 楼主| 发表于 2009-4-20 21:42:18 | 只看该作者
2# whut_wj


谢啦~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-5-5 13:08 , Processed in 0.058542 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表