打印

基础时钟模块问题,朋友们帮一下!

[复制链接]
1272|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huofeijingfe|  楼主 | 2012-10-24 17:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSP430F149共有三个振荡器:



(1)LF/XT1振荡器,提供ACLK时钟信号;



(2)XT2振荡器,提供MCLK时钟信号;



(3)片内DCO振荡器,提供SMCLK时钟信号;



其中,能够影响到振荡器失效标志OFIFG置位的有两个:



LF/XT1工作于HF模式时失效以及XT2振荡器失效。



疑问:如果设计一个系统,只安装了一个LF/XT1振荡器 (6MHZ),没有安装XT2振荡器。



想把LF/XT1工作于HF模式时产生的ACLK做为系统时钟。



那么:上电后初始化程序中必然要先切换LF/XT1工作于HF模式,就得有打开振荡器以及切换



时钟的操作:



BCSCTL1|=XTS;  //LF/XT1工作于HF模式



for(i=0;i<65535;i++){;} //延时



do



{IFG1 &= ~OFIFG;}        //清除失效标志



while(OFIFG & IFG1);  //等待LF/XT1起振



BCSCTL2 |= SELM1+SELM0; //选ACLK做系统时钟



疑问之处:此时,OFIFG不仅受LF/XT1的影响,还受到XT2



是否起振的影响,因为没有安装XT2振荡器,程序岂不永远



无法走出循环了?



哪位朋友指点一下,多谢了!

相关帖子

沙发
hawksabre| | 2012-10-24 22:01 | 只看该作者
以前也想过这个问题   不会的   它内部集成了RC晶振电路   刚开始初始化时是使用内部晶振实现初始化   你仔细看一看技术手册

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

128

帖子

0

粉丝