在STC 12C5201AD中,AD转换有段这样的话,求注解

void adc_isr() interrupt 5
{ADC_CONTR &= !ADC_FLAG;
SendData(ch);
SendData(ADC_RES);
if (++ch > 7) ch = 0;
ADC _CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch;}

void InitADC()
{ P1ASF=0xff;
ADC_RES=0;
ADC _CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch;
Delay(2);
}

void InitADC()
{ P1ASF=0xff;// P1口8根管脚全部作为AD使用
ADC_RES=0;//清空AD转换结果寄存器
ADC _CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch;//开启指定通道采样
Delay(2);// 稍微延时
}

void adc_isr() interrupt 5
{ADC_CONTR &= !ADC_FLAG; // 清除采样完成标志(这一行其实写错了,应当改为ADC_CONTR &= (~ADC_FLAG))
SendData(ch); // 发送通道号(猜测是通过串口)
SendData(ADC_RES); // 发送该通道采样值(猜测是通过串口)
if (++ch > 7) ch = 0; // 循环切换通道号0~7
ADC _CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch;}// 开启下一通道采样追问

ADC _CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch;这一步怎么运行的?搞不懂,能不能详解下,谢谢

追答

就是将ADC_CONTR寄存器中的相应位置1。

温馨提示:答案为网友推荐,仅供参考
相似回答