|
本帖最后由 huixianfxt 于 2014-7-11 09:58 编辑
void main( void )
{
int i;
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD; // 停止开门狗
while(CALBC1_1MHZ==0xff||CALDCO_1MHZ==0XFF); // 检查校准信息是否被擦除
BCSCTL1=CALBC1_1MHZ; // 设置SELX的范围
DCOCTL=CALDCO_1MHZ; // 设置DCOX的值和频率调整值MODX
BCSCTL2|=SELM_1+DIVM_0+SELS+DIVS_0; // MCLK=DCO频率 ,不分频。 SMCLK为VLO频率,不分频
BCSCTL3|=LFXT1S_2; // VLO作为低频时钟源
while(IFG1 & OFIFG)
{
IFG1 &= ~OFIFG; //清除OSCFault 标志
for(i= 0xff; i>0; i--); //延时,待稳定.
}
P1SEL |= BIT2; //TA1从P1.2输出
P1DIR |= BIT2; //TA1从P1.2输出
TACTL |= MC_1 + TASSEL_2; // up 模式,SMCLK为时钟源
TACCTL1 = OUTMOD_3; // toggle 模式
TACCR0 = 10 ; // 频率大概为定时器输入时钟频率1/10
TACCR1 = 5;
_EINT();
while(1);
}
不知道楼主看出来了没?楼主根本不明白自己写的程序(或者不是自己的程序),还是好好看看相应寄存器的功能吧!看看论坛WSTT,chunyang出的MCU工程师炼成记吧!
|
|