[8/16-bit MCU] 如果寄存器没有设定,默认值是reset值还是随机值

[复制链接]
4770|7
 楼主| williamstar 发表于 2014-3-6 20:26 | 显示全部楼层 |阅读模式
本帖最后由 williamstar 于 2014-3-6 20:30 编辑

我是初学者,劳烦各位大神了

例如锁相环初始化程序,PLLCTL_CME晶振监视使能位没有设置,那么该位默认是0还是1?
void INIT_PLL(void)
{
    CRGINT = 0;                  //关中断
    CLKSEL_PLLSEL = 0;           //在未初始化PLL前不使用PLL的输出作为CPU时钟
   
  #if(BUS_CLOCK == 40000000)
    SYNR = 4;
  #elif(BUS_CLOCK == 32000000)
    SYNR = 3;     
  #elif(BUS_CLOCK == 24000000)
    SYNR = 2;
  #endif

    REFDV = 1;                   //PLLCLK=2×OSCCLK×(SYNR+1)/(REFDV+1)=64MHz ,fbus=32M
    PLLCTL_PLLON = 1;            //开PLL
    PLLCTL_AUTO = 1;             //选取自动模式
    while (CRG标志寄存器_LOCK == 0);    //等待PLL锁定频率
    CLKSEL_PLLSEL = 1;  
}
另外,PLLCTL_AUTO自动带宽控制位,这里的带宽是什么意思?  
FSL_TICS_Robin 发表于 2014-3-7 08:57 | 显示全部楼层
楼主你好
请问你使用的芯片具体型号是什么?

 楼主| williamstar 发表于 2014-3-7 12:11 | 显示全部楼层
FSL_TICS_Robin 发表于 2014-3-7 08:57
楼主你好
请问你使用的芯片具体型号是什么?

老师你好,我用的是XDP512
FSL_TICS_Robin 发表于 2014-3-7 13:46 | 显示全部楼层
本帖最后由 FSL_TICS_Robin 于 2014-3-7 13:48 编辑
williamstar 发表于 2014-3-7 12:11
老师你好,我用的是XDP512
讨论问题而已不用叫老师啦。

Q1:  PLLCTL_CME晶振监视使能位没有设置,那么该位默认是0还是1?
A1:寄存器复位值一般都在手册中有写,CME位复位是1
PLLCTL CME.jpg

 楼主| williamstar 发表于 2014-3-7 14:47 | 显示全部楼层
FSL_TICS_Robin 发表于 2014-3-7 13:46
讨论问题而已不用叫老师啦。

Q1:  PLLCTL_CME晶振监视使能位没有设置,那么该位默认是0还是1?

寄存器没有设置的位都是reset值吗?
可是,为什么还要设置以下两位呢,这两位reset值不已经是1了吗
PLLCTL_PLLON = 1;            //开PLL
PLLCTL_AUTO = 1;             //选取自动模式
FSL_TICS_Robin 发表于 2014-3-7 15:14 | 显示全部楼层
Q2:  PLLCTL_AUTO自动带宽控制位,这里的带宽是什么意思?  
A2: 锁相环带宽,在手册附录A.5.3 Phase Locked Loop有相关计算公式等的描述。

MC9S12XDP512RMV2.pdf (7.6 MB, 下载次数: 6)

FSL_TICS_Robin 发表于 2014-3-7 15:22 | 显示全部楼层
williamstar 发表于 2014-3-7 14:47
寄存器没有设置的位都是reset值吗?
可是,为什么还要设置以下两位呢,这两位reset值不已经是1了吗
PLLCT ...

芯片复位后,寄存器值都是reset值。
如果不放心可以通过实验测试一下。


 楼主| williamstar 发表于 2014-3-7 18:47 | 显示全部楼层
FSL_TICS_Robin 发表于 2014-3-7 15:22
芯片复位后,寄存器值都是reset值。
如果不放心可以通过实验测试一下。

好的,多谢大神~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

11

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部