沼津高専 電子制御工学科

MIRS0901 ソフトウェア開発 距離平均値取得関数

MIRS0901-SOFT-0004

改訂記録

版数

作成日

作成者

承認

改訂内容

A01

2009.9.18

戸塚

武藤

初版

 



目次

1.はじめに

2.関数の概要

3.ソース

4.補足


1.はじめに

本ドキュメントは、MIRS0901の超音波センサを用いて数回にわたり測定した距離の平均を求める関数に関する説明である。

 

2.プログラムの概要

本関数は超音波USSポート番号と距離計測回数の2つの引数をもつ。

数回の測定のうち、最大値、最小値の2つの値を捨て、残った値の平均値を返り値とする。

 

ave_uss(uss_num,time)

uss_num: USSポート番号

time: 距離計測回数

 

3.ソース

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;

}

 4.補足

今後チーム皆でプログラムを書くことが予想されるので、標準プログラム以外にも、誰でも使えるようなわかりやすい関数を作っていく予定である。

 

関連文書

 Back to the top page...