void InitADC()
{
P1ASF = 0x80; /* P1.7 置为模拟功能(按需只置用到的位) */
AUXR1 &= ~0x04; /* ADRJ = 0: 结果高 8 位在 ADC_RES, 低 2 位在 ADC_RESL */
ADC_RES = 0x00; /* 清结果寄存器 */
ADC_RESL = 0x00;
//Clear previous result
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | 0x07;;
}
void CinReady()
{
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | 0x07 | ADC_START;
//ADC_CONTR |= ADC_START; // 启动ADC转换(ADST位置1)
}
WORD CinGet()
{
while (!(ADC_CONTR & ADC_FLAG));//Wait complete flag
ADC_CONTR &= ~ADC_FLAG; //Close ADC
return (((uint)ADC_RES << 2) | (ADC_RESL & 0x03)); /* ADRJ=0 的 10 位拼接 */
} |