在學(xué)習(xí)430AD采樣的部分,在提供的學(xué)習(xí)代碼上修改的,想要根據(jù)AD采樣得到的電壓值不同執(zhí)行不同的操作。
while(1)
{
LPM1;
average = average * 3;
if(average>0x0003)
{
Trans_val(average,buffer);
buffer[3] = buffer[2];
buffer[2] = buffer[1];
buffer[1] = 0x2e - 0x30;
for(i = 0; i < 4; i++)
buffer[i] += 0x30;
PutString0("The analog value is: ");
PutString(buffer);
}
else
{
Hex2Dec(average,buffer);
for(i = 0; i < 4; i++)
buffer[i] += 0x30;
PutString0("The digital value is: ");
PutString(buffer);
}
}
/*******************************************
函數(shù)名稱:ADC12ISR
功 能:ADC中斷服務(wù)函數(shù),在這里用多次平均的
計(jì)算P6.0口的模擬電壓數(shù)值
參 數(shù):無(wú)
返回值 :無(wú)
********************************************/
#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR (void)
{
static uchar index = 0;
results[index++] = ADC12MEM0; // Move results
if(index == Num_of_Results)
{
uchar i;
average = 0;
for(i = 0; i < Num_of_Results; i++)
{
average += results[i];
}
average >>= 5; //除以32
index = 0;
tcnt++;
if(tcnt == 250) //主要是降低串口發(fā)送速度
{
LPM1_EXIT;
tcnt = 0;
}
}
}
前面就是一些初始化的東西,現(xiàn)在的問(wèn)題是,不管采樣得到的電壓值是多少,都只會(huì)執(zhí)行if語(yǔ)句的內(nèi)容,不會(huì)執(zhí)行else部分。
有哪些地方?jīng)]說(shuō)清楚的可以再補(bǔ)充,希望有人幫幫我呀,不勝感激。。。!
|