本帖最后由 万能青年 于 2013-7-25 13:21 编辑
学430不是很明白时钟源、时钟系统的概念。
以我的理解,时钟系统是个供给时钟信号的“东西”
而时钟系统需要时钟源来驱动,时钟系统选择的时钟源不同,驱动能力也就不同,在驱动能力范围能可以使用分频要控制给予信号的大小。
而MSP430有时钟源LFXT1CLK、XT2CLK、DCOCLK、VLOCLK
有时钟系统ACLK、MCLK、SMCLK
可是例如以下程序,
BCSCTL3 |= LFXT1S_2;
//LFXT1=VLO,这个就不太理解了,LFXT1与VLO应该是同级的,可以互相赋值?
//应该是MCLK = VLO 的啊!!
BCSCTL2 |= SELM_3+DIVM_3;
//MCLK = LFXTCLK
//为什么不直接MCLK = VLO,而是LFXT1= VLO,然后MCLK = LFXTCLK
/****CPU运行在VLO时钟下****/
#include "msp430g2553.h"
int main( void )
{
WDTCTL = WDTPW + WDTHOLD;//关闭看门狗
P1DIR = BIT6;//P1.6配置输出
P1OUT = 0;//关闭LED
BCSCTL3 |= LFXT1S_2;//LFXT1=VLO
IFG1 &= (~OFIFG);//清除OSCFault标志
__bis_SR_register(SCG1+SCG0);//关闭DCO 将SR里面的SCG1+SCG0置位
BCSCTL2 |= SELM_3+DIVM_3;
while(1)
{
P1OUT = BIT6;
__delay_cycles(100);
P1OUT = 0;
__delay_cycles(5000);
}
}
|