主题中讨论的其他器件:MSPWARE、 INA126
你(们)好
我获得了所有 FFF、并尝试了所有不同的设置命令、包括 MSPware 中的示例。 下面是我尝试的示例代码。 我使用128ms 计时器 A 来启用模数 如果我中断 A/D ISR 并查看寄存器 、例如 ADC12MEM1、那么即使引脚上的电压为1V、它也始终为0xFFF。
有什么线索提示正在发生什么情况?
谢谢、
void main (void)
{WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
P6SEL |=0x3F;//0-5 A/D
P6OUT |=0x20;//保持上电
//为间隔计数设置基本层摄影器 A
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
TA1CCTL0 = CCIE;// CCR0中断被启用
TA1CCR0 = 4096;
TA1CTL = tassel_1 + MC_1 + TACLR;// A`CLK、upmode、clear TAR
init_a_D ();//初始化 A/D
_EINT();
while (1);
}
void init_a_D (void)//函数 init A/D
{
REFCTL0=0;//REFON+REFOUT;
ADC12CTL0 = ADC12ON+ADC12MSC+ADC12SHT0_2+ADC12SHT1_2+ADC12REFON+ADC12REF2_5V;//打开 ADC12,设置采样时间
ADC12CTL1 = ADC12SHP+ADC12CONSEQ_1_ADC12SSEL_1;//单序列
ADC12CTL2 = ADC12REFOUT+ADC12RES_2;
ADC12MCTL0 = ADC12INCH_0+ADC12SREF_1;//
ADC12MCTL1 = ADC12INCH_1_ADC12SREF_1;//
ADC12MCTL2 = ADC12INCH_2+ADC12SREF_1;
ADC12MCTL3 = ADC12INCH_3+ADC12SREF_1;//
ADC12MCTL4 = ADC12INCH_4+ADC12SREF_1;//
ADC12MCTL12 = ADC12INCH_12+ADC12SREF_1;//
ADC12MCTL13 = ADC12INCH_13+ADC12SREF_1+ADC12EOS;//
ADC12IE = 0x08;//启用 ADC12IFG.3
ADC12CTL0 |= ADC12ENC;//启用转换
}//
//
#pragma vector=ADC12_vector
_interrupt void ADC12ISR (void)
{
结果[1]= ADC12MEM1;// Hi-Temp
结果[2]= ADC12MEM2;// Lo_Temp
结果[3]= ADC12MEM12;//
结果[4]= ADC12MEM13;// Ref_Temp
结果[5]= ADC12MEM0;//
结果[6]= ADC12MEM3;//
结果[7]= ADC12MEM4;//
}//end of a/d int 服务例程
//##############################
//timer int 设置为128msec ints
#pragma vector=Timer1_A0_vector
_interrupt void Timer1_A0_ISR (void)
{
ADC12CTL0 |= ADC12SC;//启用 a/d 中断
}//end