|
我主频选的8M的晶震 ADC想采样用32768hz的ACLK 但是选着不了 都是按8m跑的
代码如下
WDTCTL = WDTPW | WDTHOLD; // Disable the Watchdog.
unsigned int iq0;
_DINT();
BCSCTL1 &=~XT2OFF;
do
{
IFG1 &= ~OFIFG; // 清除振荡器失效标志
for (iq0 = 0xFF; iq0 > 0; iq0--); // 延时,等待XT2起振
}
while ((IFG1 & OFIFG) != 0); // 判断XT2是否起振
{
BCSCTL2 = SELM1+SELS; // MCLK,SMCLK时钟为XT2
}
//选择主频
P2DIR = 0x0F;
P2OUT = 0x0E;
P1DIR = 0xff; // set port to outputs
P1OUT = 0; // reset port outputs
P6SEL |= 0x01; // select A0 input
ADC12CTL0 = ADC12ON+SHT0_1+REF2_5V+REFON; // Setup ADC12
ADC12CTL1 = SHP+CONSEQ_2+SHS_1; // Timer triggers sampling
ADC12MCTL0 = INCH_0 + SREF_1;
ADC12IE = 0x0001; // Enable ADC12IFG.0
TACCR0 = 1500; // Delay to allow Ref to settle
TACCTL0 |= CCIE; // Compare-mode interrupt.
TACTL = TASSEL_1 | MC_1; // TACLK = ACLK, Up mode.
_BIS_SR(LPM3_bits + GIE); // Wait for delay, Enable interrupts
TACCTL0 &= ~CCIE; // Disable timer
P2SEL |= BIT3; // Set for Timer A1
P2DIR |= 0x08;
TACCR0 = 7; // Init TACCR0 w/ sample prd=CCR0+1
TACCR1 = 4; // Trig for ADC12 sample & convert
TACCTL1 = OUTMOD_3; // Set/reset
TACTL = TACLR | MC_1 | TASSEL_1; // ACLK, clear TAR, up mode
//AD设置
谁能帮看看哪的毛病?
|
|