標(biāo)題:
嵌入式飛思卡爾s9s12G128芯片 AD采集
[打印本頁]
作者:
renjiezhang
時(shí)間:
2018-1-12 11:07
標(biāo)題:
嵌入式飛思卡爾s9s12G128芯片 AD采集
void ADC_Init(BYTE bCh)
{
//ad6 數(shù)字輸入檢測模式
ATDDIEN = 0xFFFF & (~bCh); //AN6開啟輸入模式
ATDCTL1 = 0x3F; //選用10位模數(shù)轉(zhuǎn)換,放電檢測模式
ATDCTL2 = 0x40; //啟動(dòng)A/D轉(zhuǎn)換,快速清零,禁止中斷
ATDCTL3 = 0x88; //每次轉(zhuǎn)換1個(gè)通道,右對(duì)齊模式
ATDCTL4 = (BUS_CLOCK / (ADC_CLK * 2) - 1) | 0x60; //10周期掃描,AD模塊時(shí)鐘頻率為2MHz BUS_CLOCK / 4000000 -1 = ATDOCTL4
#ifndef MULTI_CHANNEL
ATDCTL5 = 0x0F & bCh; //轉(zhuǎn)換AD00和AD01,單次轉(zhuǎn)換模式
#else
#endif
}
/*--------------------------------------------------------------------------*/
/* @(p) */
/* NAME : XXXXXXX */
/* FUNCTION : This is the initialization function of the XX module */
/* RETURN : none */
/* ARGUMENT : none */
/* CREATE : XXXX 2013/06/21 */
/* UPDATE : */
/* REMARK : */
/*--------------------------------------------------------------------------*/
void ADC_Close(void)
{
//ATDCTL5 &= 0xCF;
}
SHORT ADC_StartConvert(BYTE bCh)
{
WORD wErrTime = 0;
ATDCTL5 = 0x0F & bCh;
//VOL1 超時(shí)故障
for(wErrTime=0; wErrTime<ADC_ERRTIME; wErrTime++)
{
if(ATDSTAT0_SCF==1) //TXREG EMPTY
{
break;
}
}
if(wErrTime < ADC_ERRTIME)
{
m_wADin = (WORD)(*((WORD*)ADC_BASE_ADDR ));
ATDSTAT0_SCF = 1;
}
else
{
//g_stcSYSFaultFlag.bTempSensorFaultFlag = 1;
//counter
//while(1);
return -1;
}
return (m_wADin);
}
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1