Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Calculate.cpp@0:efdae9d24ee1, 2015-07-22 (annotated)
- Committer:
- ADAMSTRUTT
- Date:
- Wed Jul 22 13:12:14 2015 +0000
- Revision:
- 0:efdae9d24ee1
Start of new PTC_speed
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ADAMSTRUTT | 0:efdae9d24ee1 | 1 | //#include "mbed.h" |
ADAMSTRUTT | 0:efdae9d24ee1 | 2 | //#include <time.h> |
ADAMSTRUTT | 0:efdae9d24ee1 | 3 | //#include <string> |
ADAMSTRUTT | 0:efdae9d24ee1 | 4 | //#include <iostream> |
ADAMSTRUTT | 0:efdae9d24ee1 | 5 | //#include "Distance.h" |
ADAMSTRUTT | 0:efdae9d24ee1 | 6 | // |
ADAMSTRUTT | 0:efdae9d24ee1 | 7 | //void printArray(double array[20], int timesArray[20], int NoOfPins); |
ADAMSTRUTT | 0:efdae9d24ee1 | 8 | //void data(int sensor_number, int time, double speed); |
ADAMSTRUTT | 0:efdae9d24ee1 | 9 | // |
ADAMSTRUTT | 0:efdae9d24ee1 | 10 | // //mbed pins |
ADAMSTRUTT | 0:efdae9d24ee1 | 11 | //extern Serial pc; |
ADAMSTRUTT | 0:efdae9d24ee1 | 12 | //DigitalIn sensor[20] = {p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24};//array of sensors. |
ADAMSTRUTT | 0:efdae9d24ee1 | 13 | // |
ADAMSTRUTT | 0:efdae9d24ee1 | 14 | // |
ADAMSTRUTT | 0:efdae9d24ee1 | 15 | ////c++ variables |
ADAMSTRUTT | 0:efdae9d24ee1 | 16 | //time_t sensor_time ; //time at which sensor is broken |
ADAMSTRUTT | 0:efdae9d24ee1 | 17 | //int timeDiff; //time between 2 sensors |
ADAMSTRUTT | 0:efdae9d24ee1 | 18 | //float speed; |
ADAMSTRUTT | 0:efdae9d24ee1 | 19 | //int times[20]; //array the size of #pins |
ADAMSTRUTT | 0:efdae9d24ee1 | 20 | //double speeds[20]; //array of speeds |
ADAMSTRUTT | 0:efdae9d24ee1 | 21 | // |
ADAMSTRUTT | 0:efdae9d24ee1 | 22 | // |
ADAMSTRUTT | 0:efdae9d24ee1 | 23 | ////Speed Calculations |
ADAMSTRUTT | 0:efdae9d24ee1 | 24 | //int calculate(double distance, int noOfPins) |
ADAMSTRUTT | 0:efdae9d24ee1 | 25 | //{ |
ADAMSTRUTT | 0:efdae9d24ee1 | 26 | // |
ADAMSTRUTT | 0:efdae9d24ee1 | 27 | // pc.printf("new program \n"); //alert user of initialisation |
ADAMSTRUTT | 0:efdae9d24ee1 | 28 | // |
ADAMSTRUTT | 0:efdae9d24ee1 | 29 | // int i = 0, i1 = 0; |
ADAMSTRUTT | 0:efdae9d24ee1 | 30 | // |
ADAMSTRUTT | 0:efdae9d24ee1 | 31 | // while( i < noOfPins) |
ADAMSTRUTT | 0:efdae9d24ee1 | 32 | // { |
ADAMSTRUTT | 0:efdae9d24ee1 | 33 | // while(!sensor[i]) |
ADAMSTRUTT | 0:efdae9d24ee1 | 34 | // { |
ADAMSTRUTT | 0:efdae9d24ee1 | 35 | // if(sensor[i + 1]) { //checks if there is an error in the first sensor |
ADAMSTRUTT | 0:efdae9d24ee1 | 36 | // sensor_time = time(NULL); |
ADAMSTRUTT | 0:efdae9d24ee1 | 37 | // pc.printf ("Error with sensor: %d", i); |
ADAMSTRUTT | 0:efdae9d24ee1 | 38 | // i++; |
ADAMSTRUTT | 0:efdae9d24ee1 | 39 | // } |
ADAMSTRUTT | 0:efdae9d24ee1 | 40 | // if(sensor[i + 2]) { //checks if there is an error in the second sensor after |
ADAMSTRUTT | 0:efdae9d24ee1 | 41 | // sensor_time = time(NULL); |
ADAMSTRUTT | 0:efdae9d24ee1 | 42 | // pc.printf ("Error with sensors: %d, %d", i,i1 = i + 1); |
ADAMSTRUTT | 0:efdae9d24ee1 | 43 | // i = i + 2; |
ADAMSTRUTT | 0:efdae9d24ee1 | 44 | // } |
ADAMSTRUTT | 0:efdae9d24ee1 | 45 | // } |
ADAMSTRUTT | 0:efdae9d24ee1 | 46 | // sensor_time = time(NULL); //gets current time |
ADAMSTRUTT | 0:efdae9d24ee1 | 47 | // pc.printf("\n sensor %d : %d \t", i, sensor_time); |
ADAMSTRUTT | 0:efdae9d24ee1 | 48 | // times[i] = sensor_time; //adds sensor times to array for logging. |
ADAMSTRUTT | 0:efdae9d24ee1 | 49 | // if ( i > 0) { //to ensure it is not the first one |
ADAMSTRUTT | 0:efdae9d24ee1 | 50 | // timeDiff = difftime(times[i], times[i-1]); //calculates the time difference |
ADAMSTRUTT | 0:efdae9d24ee1 | 51 | // pc.printf(" timediff: %d s \t", timeDiff); |
ADAMSTRUTT | 0:efdae9d24ee1 | 52 | // speed = distance / timeDiff; |
ADAMSTRUTT | 0:efdae9d24ee1 | 53 | // pc.printf(" speed : %f m/s ", speed); |
ADAMSTRUTT | 0:efdae9d24ee1 | 54 | // speeds[i] = speed; |
ADAMSTRUTT | 0:efdae9d24ee1 | 55 | // } |
ADAMSTRUTT | 0:efdae9d24ee1 | 56 | // i++; |
ADAMSTRUTT | 0:efdae9d24ee1 | 57 | // } |
ADAMSTRUTT | 0:efdae9d24ee1 | 58 | // pc.printf(" \n Calculate completed \n"); //alert to let user know it completed |
ADAMSTRUTT | 0:efdae9d24ee1 | 59 | // printArray(speeds, times, noOfPins); |
ADAMSTRUTT | 0:efdae9d24ee1 | 60 | // |
ADAMSTRUTT | 0:efdae9d24ee1 | 61 | //} |
ADAMSTRUTT | 0:efdae9d24ee1 | 62 | // |
ADAMSTRUTT | 0:efdae9d24ee1 | 63 | //void printArray(double array[23], int timesArray[23], int noOfPins) |
ADAMSTRUTT | 0:efdae9d24ee1 | 64 | // { |
ADAMSTRUTT | 0:efdae9d24ee1 | 65 | // for (int i = 0; i < noOfPins ; i++) //printing module for array |
ADAMSTRUTT | 0:efdae9d24ee1 | 66 | // { |
ADAMSTRUTT | 0:efdae9d24ee1 | 67 | // pc.printf(" Sensor : %d Time %d Speed %f \n", i, times[i], speeds[i]);// pc.printf(" %d : %d \t", i,times[i]); |
ADAMSTRUTT | 0:efdae9d24ee1 | 68 | // } |
ADAMSTRUTT | 0:efdae9d24ee1 | 69 | // for (int i = 0; i < noOfPins ; i++) //printing to Datalog |
ADAMSTRUTT | 0:efdae9d24ee1 | 70 | // { |
ADAMSTRUTT | 0:efdae9d24ee1 | 71 | // data( i,times[i],speeds[i]); |
ADAMSTRUTT | 0:efdae9d24ee1 | 72 | // } |
ADAMSTRUTT | 0:efdae9d24ee1 | 73 | // |
ADAMSTRUTT | 0:efdae9d24ee1 | 74 | // } |