void Clock_Config(void)
{
unsigned char i=0;
while(CALBC1_1MHZ==0xff||CALDCO_1MHZ==0XFF); // 检查校准信息是否被擦除
DCOCTL = DCO1+DCO0;
BCSCTL1 = RSEL3+RSEL1+RSEL0;
BCSCTL1 |= XT2OFF;
BCSCTL2 = 0;
while(IFG1 & OFIFG)
{
IFG1 &= ~OFIFG; //清除OSCFault 标志
for(i= 0xff; i>0; i–); //延时,待稳定.
}
}
void ADC10_Config(void)
{
ADC10CTL0 = SREF0+ADC10SHT1+REF2_5V+REFON+ADC10ON+ADC10IE+ENC; //Set sampling time, turn on ADC10
ADC10CTL1 = INCH2+INCH1+INCH0+ADC10SSEL1+ADC10SSEL0+CONSEQ1; // Use sampling timer
ADC10AE0 |= BIT7;
ADC10CTL0 |= ADC10SC; // Start Convertion
}
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR (void)
{
if (ADC10MEM < 0x7FF)
{}
else
{}
}
问题:当我上电不调用void Clock_Config(void)对时钟进行配置时,系统可以进入AD10中断,但是当我调用时钟处理函数后,AD10中断无法进入。我查看手册,感觉时钟那块好像和AD10没什么关系啊,是不是手册看的有问题啊,希望工作人员能帮忙指出问题所在。
灰小子:
你的 Clock_Config(void)代码有问题。
建议参考官网提供的例程,在例程的基础上进行修改
http://dev.ti.com/tirex/#/Package/MSPWare
Jacky Xu:
你想要配置成什么时钟
HG:
如果不对时钟进行配置,用的是系统默认的1M时钟。说明ADC是好用的,但是如果你调用了clock configure后ADC功能就不正常了,你可以打断点看看while函数有没有通过,还有就是把你想要配置的时钟ACLK/SMCLK从I/O输出看对不对