大家看看这个
#include <msp430x14x.h>
void ClockInit()
{
unsigned char i;
BCSCTL1&=~XT2OFF; //XT2振荡器开启
BCSCTL2|=SELM1+SELS; //SELM1=1:MCLK时钟源为XT2CLK;SELS=1:SMCLK的时钟源为XT2CLK。
do
{
IFG1&=~OFIFG; //消除振荡器错误标志
for(i=0;i<100;i++)
_NOP();
}
while((IFG1&OFIFG)!=0);
IFG1&=~OFIFG;
}
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
void ClockInit();
TACTL = TASSEL_2 + MC_1; // SMCLK, up mode
P1DIR |= 0x0C; // P1.2 and P1.3 output
P1SEL |= 0x0C; // P1.2 and P1.3 TA1/2 otions
CCR0 = 800; // PWM Period
CCTL1 = OUTMOD_7; // CCR1 reset/set
CCR1 = 400; // CCR1 PWM duty cycle
CCTL2 = OUTMOD_7; // CCR2 reset/set
CCR2 = 200; // CCR2 PWM duty cycle
_BIS_SR(LPM0_bits); // Enter LPM0
}
我感觉输出周期应该是10k,但是示波器测出来只有1k 。怎么搞的啊?
此帖出自
小平头技术问答
一周热门 更多>