高级会员
- 积分
- 760
- 威望
- 347
- 贡献
- 199
- 兑换币
- 225
- 注册时间
- 2012-11-2
- 在线时间
- 107 小时
|
void ad_dealvalue(void)
{
uint8 i,j;
uint16 max,min;
uint32 temp;
for(j=0;j<4;j++)//选择ADvalue其中一行数据
{
max = ADvalue[j][0];
min = ADvalue[j][0];
for(i=1;i<4;i++)//处理ADvalue的一行数据,去最大、最小值,再取平均
{
if(max < ADvalue[j][i])
{
max = ADvalue[j][i]; //得到每行的最大值
}
if(min > ADvalue[j][i])
{
min = ADvalue[j][i];//得到每行的最小值
}
}
temp = 0;
for(i=0;i<4;i++)
{
temp = temp + ADvalue[j][i];//每行数据总和
}
temp = (temp-max-min)/2; //去掉最小值和最大值后,每行数据的平均值
Final_ADvalue[j]=(uint16)temp;
Led_flash(15);
}
}
ADvalue[j][i]为4行4列数组,LED_flash(15)为pta15引脚取反函数(其为判断程序是否正常进行)。第一条代码for(j=0;j<4;j++)改成for(j=0;j<=4;j++),该程序能正常运行。按照我的理解,四行四列数组,第一行应该为[0],第n
行为[n-1].在本程序中,在for(j=0;j<4;j++)应该能正常处理数据,但是写成这样实现不了里面的代码,主要表现为PTA15引脚小灯不亮。而将Led_flash(15);代码移到for(j=0;j<4;j++)外面,小灯正常亮。我用的是K60,100m频率。求解决
|
|