沼津高専 電子制御工学科 |
||||||
|
||||||
改訂記録 |
||||||
版数 |
作成日 |
作成者 |
承認 |
改訂内容 |
||
A01 |
2009.9.18 |
戸塚 |
武藤 |
初版 |
1.はじめに
2.関数の概要
3.ソース
4.補足
本ドキュメントは、MIRS0901の超音波センサを用いて数回にわたり測定した距離の平均を求める関数に関する説明である。
本関数は超音波USSポート番号と距離計測回数の2つの引数をもつ。
数回の測定のうち、最大値、最小値の2つの値を捨て、残った値の平均値を返り値とする。
ave_uss(uss_num,time)
uss_num: USSポート番号
time: 距離計測回数
int ave_uss(int num,int loop){
int i,uss_data[100],min=0,max=0,ave=0,sum=0;
//開始
for(i=1;i<=loop;i++){
uss_data[i-1]=uss_get(num);
sum+=uss_data[i-1];
if(i>1){
if(uss_data[i-1]>max){
max=uss_data[i-1];
}else if(uss_data[i-1]<min){
min=uss_data[i-1];
}else{}
}else if(i==1){
min=max=uss_data[i-1];
}else{}
usleep(0);
printf("uss[%d] = %d",i-1,uss_data[i-1]);
}
ave=(sum-min-max)/(loop-2);
printf("\n");
printf("min=%d max=%d\n",min,max);
printf("ave=%d\n",ave);
//終了
return ave;
}
今後チーム皆でプログラムを書くことが予想されるので、標準プログラム以外にも、誰でも使えるようなわかりやすい関数を作っていく予定である。
関連文書 |