代码功能:设置DCO频率,将MCLK和SMCLK设置为DCO,,调用定时器——A比较功能。时钟输入设置为SMCLK,输出PWM波,
存在问题 : 通过配置寄存器,理论上上输出频率为DCO频率1/10,可是设置DCO为16MHZ时,输出为2.89KHZ,
设置DCO为1MHZ时,输出为2.25KHZ。。希望指点。。
编译环境:IAR
包涵头文件:msp430g2553.h
程序:
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;
DCOCTL=CALDCO_1MHZ;
BCSCTL2|=SELM_1+DIVM_0+SELS+DIVS_0;
BCSCTL3|=LFXT1S_2; //时钟配置
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; 以MSCLK为输入
TACCTL1 = OUTMOD_3;
TACCR0 = 10 ; //频率大概为定时器输入时钟频率1/10
TACCR1 = 5;
_EINT();
while(1);
}
