#include
#include
unsigned char average_filter(unsigned int p)
{ unsigned int *point,i,j,n,d,sum;
for(i=0;i<19;i++)
{point=p;
n=19-i;
for(j=0;j<n;j++)
{if(*point<(point+1))
{ d=*point;
point=(point+1);
*(point+1)=d;
}
point++;
}
}
point=p+5;
sum=0;
for (i=0;i<10;i++)
{
sum=sum+*point;
point++;
}
sum=sum/10;
return sum;
}
void main(void)
{unsigned int *p1,i,m;
SCON=0x52;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
TI=1;
p1=0x50;
*p1=100;
for(i=0;i<20;i++)
{ *(p1+1)=*p1-2;
printf("%d,i=%d\n",*p1,i);
p1++;
}
printf("\n");
p1=0x50;
m=average_filter(p1);
for(i=0;i<20;i++)
printf("%d,",*(p1+i));
printf("\n");
for(i=5;i<15;i++)
printf("%d,",*(p1+i));
printf("\n");
printf("m=%d\n",m);
}