求助MSP430单片机SMCLK、MCLK、ACLK的疑惑

楼主
求助MSP430单片机SMCLK、MCLK、ACLK的疑惑
我初学MSP430,有些概念还不是很清楚,想通过高手还帮我解答一下,谢谢了。

1 . 怎么产生SMCLK? 烦请写出C代码
2 . 怎么产生MCLK?  烦请写出C代码
3.  ACLK的频率是不是单片机的XIN XOUT引脚两端接的晶振频率?

    以上问题都是基于在XIN XOUT引脚两端接32.768KHz下。
    需要产生SMCLK的频率为4MHz,MCLK的频率为8MHz。
1楼
先回答你的问题3:是的。而且还可以是它的2,4,8分频。

而MCLK,如果什么都不写,那默认时钟来源是DCOCLK。如果要开高频晶振,就是XT2CLK的,示例如下:
//-------开晶振XT2---------

   BCSCTL1&=~XT2OFF;                //打开XT2振荡器
   do
   {
   IFG1 &= ~OFIFG;                     // 清除振荡器失效标志
   for (int i=256;i>0;i--);                     // 延时,等待XT2起振
   }
  while ((IFG1 & OFIFG) != 0);            // 判断XT2是否起振

  BCSCTL2 =SELM_2+SELS;             //选择MCLK=SMCLK为XT2

  //-----------------------------
注:你去查下BSCCTL2寄存器的各个标志位分别是控制什么的就知道了。它是一个8位寄存器。
7、6位控制MCLK的时钟源,3位选择SMCLK的时钟源。
2楼
楼主,这部分的东西很重要最好还是彻底了解了才好。推荐你一本极好的书:
MSP430系列单片机系统工程设计与实践 机工社出版的 作者:谢楷 赵建
3楼
时钟是单片机最重要的东西,使用该最下功夫的地方。
二楼设置的应该 MCLK和SMCLK的频率都为8MHz。
把最后用一句改为BCSCTL2 =SELM_2+DIVS_1+SELS;即可实现 SMCLK的频率为4MHz,MCLK的频率为8MHz。

电脑版 Page created in 0.0625 seconds width 2 queries.