大家好!最近看到一个用PIC18F45K80系列单片机写的ADC采样代码,主要代码如下:
ADC是12位精度的,一个通道采样64次,然后求平均值,但是我对V_SampleSum += (V_SampleData >> 4);这句不理解,V_SampleSum是累计64次的AD采样值,这里为什么不直接使用 V_SampleSum += ADC_SampleData;
还望专家们解释下这里代码的意义,谢谢了!
- #define ShiftPoint 6
- uint V_SampleData = 0;
- ulong V_SampleSum = 0;
- volatile uint V_SampleValueFilt = 0;
-
- ADC_SampleData = (uint)(((ADRESH&0x0F)<<8) + ADRESL);
-
- case S_54V:
- {
- V_SampleData = ADC_SampleData + (V_SampleData - (V_SampleData >> 4));
- if(SampleFlag == 0)
- V_SampleSum += (V_SampleData >> 4);
-
- break;
- }
-
- V_SampleValueFilt = (V_SampleSum>>(ShiftPoint));
|