【求助】关于CH582m ADC数据采集问题

最近使用CH582m的ADC采集数据时遇到一个问题,因为我需要做高频计算,我在定时器中断里面去读取四个通道的ADC的数据,每个通道读取5次数据然后求平均值来消抖。问题就是我把定时器定时时间设置为1ms和2ms测试,我电位器没动,但是偶尔就会出现读出的某个通道的ADC值出现比较大的跳变;我想问一下这是什么原因导致的,我也换过板子来测试,结果也是一样的。

中断本身的要求是快进快出,在中断中是不建议添加太多的函数处理,一般在中断处理标志的读取,或者直接操作寄存器。

582是蓝牙芯片,如果使用蓝牙功能,可以将ADC的采集通过tmos任务管理,采集的数据我们实测是没有问题的。

如不使用蓝牙和tmos,可以将函数放在中断外面,通过定时器查询标志并读取进行判断是否执行ADC的采集。


主要是我需要保持高频计算,并且计算这部分内容不能被其他任务影响。在TMOS里面跑的话,任务不支持抢占,就不能保证计算任务的运行频率了;


尝试直接操作ADC寄存器,不要在中断服务函数中调用其他函数。

或者将代码发送至lpc@wch.cn,我们这里进行查看。


只有登录才能回复,可以选择微信账号登录