求思路:ADC一段波形如何求峰峰值
ADC一段波形如何求峰峰值
[解决办法]
u16 ADC_result, Peak_Min, Peak_Max;
Peak_Min 初始化为量程的最高值
Peak_Max 初始化为量程的最低值,也就是起始状态下Peak_Min > Peak_Max。第一次刷新之后就好了。
最基本的,先获取最大值和最小值,每次刷新的时候执行下面的:
if(ADC_result < Peak_Min) Peak_Min = ADC_result;
if(ADC_result > Peak_Max) Peak_Max = ADC_result;
然后可以用最大值减去最小值。
你要是把时间分成相互不重叠的时段,需要每个时段内的VPP,就定期重新初始化一下那两个变量。
如果求连续的时间段VPP可以考虑做个队列把过去一段时间的相关变量存起来。在内存里面选取片段进行对比。