MSP430 时钟的初始化和GPIO

2019-07-26 16:24发布

MSP430时钟:
1、在MSP430单片机中一共有三个或四个时钟源
(1)LFXT1CLK,为低速/高速晶振源,通常接32.768kHz,也可以接(400kHz~16Mhz);
(2)XT2CLK,可选高频振荡器,外接标准高速晶振,通常是接8Mhz,也可以接(400kHz~16Mhz);     
(3)DCOCLK,数控振荡器,为内部晶振,由RC震荡回路构成;
(4)VLOCLK,内部低频振荡器,12kHz标准振荡器。
2、在MSP430单片机内部一共有三个时钟系统
(1)ACLK,Auxiliary Clock,辅助时钟,通常由LFXT1CLK或VLOCLK作为时钟源,可以通过软件控制更改时钟的分频系数;   
(2)MCLK,Master Clock,系统主时钟单元,为系统内核提供时钟,它可以通过软件从四个时钟源选择;
(3)SMCLK,Sub-Main Clock,系统子时钟,也是可以由软件选择时钟源。
Basic Clock Module Registers(基础时钟寄存器)
DCO control register                        
DCOCTL
Basic clock system control 1            
     BCSCTL1
Basic clock system control 2            
      BCSCTL2
Basic clock system control 3               
   BCSCTL3
SFR interrupt enable register 1         
       IE1
SFR interrupt flag register 1            
     IFG1
3、MSP430的时钟设置包括3个寄存器,DCOCTL、BCSCTL1、BCSCTL2、BCSCTL3
DCOCTL,DCO控制寄存器,地址为56H,初始值为60H
DCO2
DCO1
DCO0
MOD4
MOD3
MOD2
MOD1
MOD0
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
一品人生
2019-07-27 09:47
七、if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF)
   
{
   
while(1);                            // If cal const erased,挂起
}                                    
(例3、例4)
请注意这里的陷阱。它可以清除内存段信息。

八、IFG1 &= ~OFIFG;                       // 清除OSCFault 标志  
(例1、例4)
时钟系统将强制使用的MCLK作为其源的DCO在一个时钟故障的存在。因此,我们必须清除故障标志。
FG1中断标志寄存器是1。寄存器中的位域是唯一的振荡器故障中断标志 - OFIFG。

九、while(IFG1 & OFIFG)
{
IFG1 &= ~OFIFG;                       // 清除OSCFault 标志
_delay_cycles(100000);                 // 为可见标志延时
}                                   
(例2、例3)
在上面的代码我们把OSCFault标志继续做我们的任务,由于时钟系统将默认为VLO。现在,我们希望确保该标志保持清零,这意味着晶体是启动并运行着的。
如果该故障标志是明确的,我们就退出循环。我们需要等待清算后的标志,直到我们再次测试50微秒。该_delay_cycles(100000)。我们需要它是那么长的时间,所以我们可以看到在代码开头的LED灯。否则,它会这么快,我们的光将无法看到它。
配置:
BCSCTL1BCSCTL2BCSCTL3DCOCTLIFG1VLO(12KHz) SELM_3 + DIVM_3LFXT1S_2 32768KHz SELM_3 + DIVM_3LFXT1S_0 While晶振、DCO SELM_0+ DIVM_3LFXT1S_0 WhileDCOCALBC1_1MHZSELM_0+ DIVM_3LFXT1S_2CALDCO_1MHZ

一周热门 更多>