程序代碼如下: // 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, 是怎么回事,,改為雙極性采樣時也是一樣的結果,請指點一下,是什么地方有設置錯誤嗎?
弄了 幾天,一直沒頭緒!!
|