项目场景:
RA4多通道ADC采样配置为连续扫描模式
问题描述
[这里配置为ADC连续扫描采样模式,配置相应的PIN脚,自动生成代码,出现对某一通道进行连续采样,有时候读取到的ADC采样数据为0.
原因分析:
1、未按照手册对产生的中断时间进行处理,重复读取寄存器数据,寄存器读取配置又配置为clear after read
故如果在10ms内连续多次调用ADC读取函数,出现某次数据为0的问题;
解决方案:
如下图所示配置中断回调处理,当判断到连续采样一轮的回调标志时,再进行ADC函数的读取。
/* Wait for conversion to complete. /
scan_complete_flag = false;
while (!scan_complete_flag)
{
/ Wait for callback to set flag. */
}