智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6007|回复: 12
打印 上一主题 下一主题

两个锁相环程序

[复制链接]

0

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
293
威望
221
贡献
22
兑换币
0
注册时间
2008-12-6
在线时间
25 小时
跳转到指定楼层
1#
发表于 2009-3-16 20:08:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序一:

void SET_PLL(  )
  {
    REFDV=0X01;
    SYNR=0X02;
    asm{
     BRCLR CRGFLG,#$08,*
     BSET   CLKSEL,#$80
           }
   }

程序二:

  void SET_PLL( )
  {
       CLKSEL=0X00;
       PLLCTL=0xe1;
       SYNR=2;
       REFDV=1;
       PLLCTL=0X60;
       asm  NOP;
       asm  NOP;
       asm  NOP;
       while((CRGFLG&0X08)==0);
       CLKSEL=0X80;
   }

我的理解:这两个程序其实是一样的,都是将频率倍频至24M,其中第一个程序中的两条汇编指令的含义就是第二个程序中最后两条语句的含义。

我的疑问:1.既然两条汇编指令的含义是最后两条语句的含义,那为什么第二个程序会多出,多出来的部分能否不写     (CLKSEL=0X00; PLLCTL=0XE1;   PLLCTL=0X60;这三句)??
               2.上面两段程序执行起来是否一样,那个效率更高??

我的说法里如果有什么不正确的地方,望高手能指出来,最好能分析一下这两程序,基本的我都懂。谢谢

14

主题

586

帖子

0

精华

禁止发言

事人

积分
3226
威望
988
贡献
1966
兑换币
62
注册时间
2008-9-5
在线时间
136 小时
2#
发表于 2009-3-16 21:50:11 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
293
威望
221
贡献
22
兑换币
0
注册时间
2008-12-6
在线时间
25 小时
3#
 楼主| 发表于 2009-3-16 22:27:46 | 只看该作者
谢谢,我的意思不是在空指令,呵呵
回复 支持 反对

使用道具 举报

0

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
威望
211
贡献
22
兑换币
0
注册时间
2009-3-31
在线时间
40 小时
4#
发表于 2009-5-14 20:34:53 | 只看该作者
SYNR,REFDV只有在CLKSEL_PLLSEL=0的情况下才能写入。
回复 支持 反对

使用道具 举报

0

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
238
威望
202
贡献
22
兑换币
0
注册时间
2009-4-14
在线时间
7 小时
5#
发表于 2009-5-16 17:29:52 | 只看该作者
SYNR,REFDV只有在CLKSEL_PLLSEL=0的情况下才能写入。
shibf 发表于 2009-5-14 20:34

不过系统默认的就是CLKSEL_PLLSEL=0。
回复 支持 反对

使用道具 举报

20

主题

187

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2478
威望
412
贡献
1638
兑换币
4
注册时间
2009-9-10
在线时间
214 小时
6#
发表于 2009-12-22 21:40:45 | 只看该作者
有没有说有教程
回复 支持 反对

使用道具 举报

21

主题

1019

帖子

0

精华

常驻嘉宾

我爱雯婕

Rank: 8Rank: 8

积分
4657
威望
2223
贡献
1682
兑换币
4
注册时间
2009-3-4
在线时间
376 小时
7#
发表于 2009-12-25 00:20:28 | 只看该作者
本帖最后由 chenrunshe_007 于 2009-12-25 00:22 编辑

回复 1# 法布里加斯
第一种:如果程序跑飞复位,那我就不知道原来设定锁环相关寄存器的值是多少了。
第二种:即使程序跑飞,或者看门狗复位,程序重新运行相关的寄存器也能正常的初始化。
不过一般如果你建立工程时选的是寄存器初始化为系统默认。那都差不多,只不过第二种更专业一点(书上是这样写的),而第一种更简洁。
回复 支持 反对

使用道具 举报

13

主题

326

帖子

0

精华

高级会员

Rank: 4

积分
725
威望
512
贡献
137
兑换币
0
注册时间
2009-9-8
在线时间
38 小时
8#
发表于 2009-12-26 15:41:38 | 只看该作者
按Datasheet 来就可以了
回复 支持 反对

使用道具 举报

2

主题

203

帖子

0

精华

高级会员

Rank: 4

积分
741
QQ
威望
434
贡献
249
兑换币
0
注册时间
2010-11-1
在线时间
29 小时
9#
发表于 2010-11-16 15:59:14 | 只看该作者
学习
回复 支持 反对

使用道具 举报

1

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
598
QQ
威望
277
贡献
317
兑换币
0
注册时间
2011-3-14
在线时间
2 小时
10#
发表于 2011-3-14 20:33:53 | 只看该作者
我认为是上面的
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-8 07:45 , Processed in 0.065773 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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