中级会员
- 积分
- 293
- 威望
- 221
- 贡献
- 22
- 兑换币
- 0
- 注册时间
- 2008-12-6
- 在线时间
- 25 小时
|
程序一:
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.上面两段程序执行起来是否一样,那个效率更高??
我的说法里如果有什么不正确的地方,望高手能指出来,最好能分析一下这两程序,基本的我都懂。谢谢 |
|