1、设置了突发模式不是会自动循环转换吗?那为什么在while中还有AD0CR |= 1 << 24; 循环启动呢?
2、在突发模式中启动AD转换也是通过AD0CR |= 1 << 24; 启动的吗?那么跟软件触发有什么区别?(除了可以设置精度以外)
周工提供的程序片段(周立功\disk1\技术笔记上册例程\ADC\突发模式ADC转换\ADC_Burst)
AD0CR = (1 << 5) |
((Fpclk / 1000000 - 1) << 8) |
(1 << 16) |
(0 << 17) |
(1 << 21) |
(0 << 24);
DelayNS(10);
ADC_Data = ADDR5;
while (1)
{
AD0CR |= 1 << 24;
while ((AD0STAT & (1 << 5)) == 0);
AD0CR |= 1 << 24;
while ((AD0STAT & (1 << 5)) == 0);
ADC_Data = ADDR5;
ADC_Data = (ADC_Data >> 6) & 0x3ff;
ADC_Data = ADC_Data * 2500;
ADC_Data = ADC_Data / 1024;
sprintf(str, "%4d mV VIN5", ADC_Data);
}
|
|