程序代码如下: // SD24初始化
void ADC_SD24_Intil(void)
{
unsigned int i;
// 内部通道0 单通道单词转换 中断模式
SD24CTL |= SD24REFON + SD24SSEL0; // 1.2V ref, SMCLK
SD24CCTL0 |= SD24SNGL+SD24UNI+SD24IE; // Single convp ,enable interrupt 单通道单次转换 单极性 偏移二进制
// 过采样率默认值 256
SD24INCTL0 |= SD24INTDLY0; // Interrupt on 3rd sample 增益为1 默认通道为0
for (i = 0; i < 0x3600; i++); // Delay for 1.2V ref startup
}
// 定时器控制SD24采样启动
#pragma vector=TIMERA0_VECTOR
__interrupt void TIMER_A (void)
{
static unsigned int Tn=0;
Tn++;
if(!(Tn%200)) SD24CCTL0 |= SD24SC;
} #pragma vector=SD24_VECTOR
__interrupt void SD24AISR(void)
{
switch (SD24IV)
{
case 2: // SD24MEM Overflow
break;
case 4:
adcresult_mid[0] = SD24MEM0; // 读取数据
adcresult_mid[1] = SD24MEM0; // 读取数据
adc_over_flag =1;
break;
case 6:
break;
case 8:
break;
default:
break;
}
} 信号由A0.0+ , A0.0- 输入,其中A0.0+接模拟信号,A0.0- 接1.25V参考。
测试时,A0.0+上的电压大约0.414V, 结果发现,单极性采样的数据,要么是全0, 要么是全FF, 是怎么回事,,改为双极性采样时也是一样的结果,请指点一下,是什么地方有设置错误吗?
弄了 几天,一直没头绪!!
|