我想测量6路电压信号,信号是DC bias + AC signal. 测量思路如下:
假定电压周期固定为20ms,定时器1ms中断一次,在定时器中断的ISR中软件触发AD采样。则在20ms内采样20次来算有效值于是AD配置成单次scan模式,采样结果用DMA来搬运到一个缓冲区中,缓冲区应能存放 20 *6 =120个数据。我把DMA配置成循环模式,并且把缓冲区大小设置成240 (两倍于120),并开启传输一半中断和传输完成中断,这样就可以实现AD采样的双缓冲结构。可是计算有效值一会是正常电压值,一会是一个很大的值,不过错误值也是稳定的。真不知问题出在哪?以下是代码片断,请大虾帮看看有什么问题:
|