| 问题找到了:AD转换后return ADC没有&0x3ff;还有我用积分形式滤波算法,初始化时参数都没有附初值0; 不过还是不明白:为什么要赋初始值?
 unsigned int temp=0;           //中间量
 unsigned int TSenTotl=0;         //总和
 unsigned int TSArr[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
 。
 。
 。
 
 
 ADMUX&= ~(1 <<MUX0);     //Ñ¡ADµÄ0ͨµÀ
 ADMUX&= ~(1 <<MUX1);
 temp=AD_GetData();         //¶ÁÈë´«¸ÐÆ÷ζÈÖµ
 TSenTotl=TSenTotl+temp-TSArr[0];   //¼ÓÉÏ×îÐÂÒ»´Î£¬¼õÈ¥×îǰһ´Î
 temSen=TSenTotl>>4;     //除16
 data[3]=(unsigned char)(temSen/20);   //显示值
 if (data[3]>50)           //·Àֹζȳ¬50
 
 {
 data[3]=50;
 }
 for(unsigned char i=0;i<15;i++)
 {
 TSArr=TSArr[i+1];
 }
 TSArr[15]=temp;
 |