Initial Commit

Dependencies:   mbed HC05 QEI MODSERIAL SWSPI mbed-rtos

Committer:
Throwbot
Date:
Sat Oct 11 03:53:27 2014 +0000
Revision:
1:1da89c13dfa1
Child:
2:0f80c8a1c236
Ultrasonic seperate class

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Throwbot 1:1da89c13dfa1 1 #include "ultrasonic.h"
Throwbot 1:1da89c13dfa1 2 #include "math.h"
Throwbot 1:1da89c13dfa1 3 int arraysize =10;
Throwbot 1:1da89c13dfa1 4 int rangevalue[10];
Throwbot 1:1da89c13dfa1 5 int modE;
Throwbot 1:1da89c13dfa1 6 void isort(int *a, int n)
Throwbot 1:1da89c13dfa1 7 {
Throwbot 1:1da89c13dfa1 8 // *a is an array pointer function
Throwbot 1:1da89c13dfa1 9 for (int i = 1; i < n; ++i) {
Throwbot 1:1da89c13dfa1 10 int j = a[i];
Throwbot 1:1da89c13dfa1 11 int k;
Throwbot 1:1da89c13dfa1 12 for (k = i - 1; (k >= 0) && (j < a[k]); k--) {
Throwbot 1:1da89c13dfa1 13 a[k + 1] = a[k];
Throwbot 1:1da89c13dfa1 14 }
Throwbot 1:1da89c13dfa1 15 a[k + 1] = j;
Throwbot 1:1da89c13dfa1 16 }
Throwbot 1:1da89c13dfa1 17 }
Throwbot 1:1da89c13dfa1 18
Throwbot 1:1da89c13dfa1 19 //Mode function, returning the mode or median.
Throwbot 1:1da89c13dfa1 20 int mode(int *x,int n)
Throwbot 1:1da89c13dfa1 21 {
Throwbot 1:1da89c13dfa1 22 int number = x[0];
Throwbot 1:1da89c13dfa1 23 int mode = number;
Throwbot 1:1da89c13dfa1 24 int mode2=number;
Throwbot 1:1da89c13dfa1 25 int count = 1;
Throwbot 1:1da89c13dfa1 26 int countMode = 1;
Throwbot 1:1da89c13dfa1 27
Throwbot 1:1da89c13dfa1 28 for (int i=1; i<n; i++) {
Throwbot 1:1da89c13dfa1 29 if (x[i] == number) {
Throwbot 1:1da89c13dfa1 30 // count occurrences of the current number
Throwbot 1:1da89c13dfa1 31 count++;
Throwbot 1:1da89c13dfa1 32 } else {
Throwbot 1:1da89c13dfa1 33 // now this is a different number
Throwbot 1:1da89c13dfa1 34 if (count > countMode) {
Throwbot 1:1da89c13dfa1 35 countMode = count; // mode is the biggest ocurrences
Throwbot 1:1da89c13dfa1 36 mode = number;
Throwbot 1:1da89c13dfa1 37 mode2=number;
Throwbot 1:1da89c13dfa1 38 } else if(count == countMode && count!=1) {
Throwbot 1:1da89c13dfa1 39 mode2=number;
Throwbot 1:1da89c13dfa1 40 } else if(countMode==1) {
Throwbot 1:1da89c13dfa1 41 mode=x[((n-1)/2)];
Throwbot 1:1da89c13dfa1 42 mode2=x[((n+1)/2)];
Throwbot 1:1da89c13dfa1 43 }
Throwbot 1:1da89c13dfa1 44 count = 1; // reset count for the new number
Throwbot 1:1da89c13dfa1 45 number = x[i];
Throwbot 1:1da89c13dfa1 46 }
Throwbot 1:1da89c13dfa1 47 }
Throwbot 1:1da89c13dfa1 48 return ((mode+mode2)/2);
Throwbot 1:1da89c13dfa1 49 }
Throwbot 1:1da89c13dfa1 50 int sensorvalue(AnalogIn pin)
Throwbot 1:1da89c13dfa1 51 {
Throwbot 1:1da89c13dfa1 52 //int sum=0;
Throwbot 1:1da89c13dfa1 53 for(int i=0; i<arraysize; i++) {
Throwbot 1:1da89c13dfa1 54 rangevalue[i]= (pin.read()*5*102.54*2.54*10);
Throwbot 1:1da89c13dfa1 55 //sum=sum+rangevalue[i];
Throwbot 1:1da89c13dfa1 56 }
Throwbot 1:1da89c13dfa1 57 //return sum/100;
Throwbot 1:1da89c13dfa1 58 isort(rangevalue,arraysize);
Throwbot 1:1da89c13dfa1 59 //modE = mode(rangevalue,arraysize);
Throwbot 1:1da89c13dfa1 60 modE=rangevalue[arraysize/2];
Throwbot 1:1da89c13dfa1 61 return modE;
Throwbot 1:1da89c13dfa1 62 }