
Lol smth
Dependencies: LocalPositionSystem MMA8451Q Motor_Driver Sensors mbed
Fork of TDP_main_BartFork by
sensor_measure.h
- Committer:
- Reckstyle
- Date:
- 2015-02-13
- Revision:
- 0:5ca0450111f3
- Child:
- 1:eace997e9a93
File content as of revision 0:5ca0450111f3:
/* Sensor measurement header file. Contains the pin declarations and variables for all sensors-related work Also contains the measurement function - should it??? TODO -decide whether pins should be Interrupts INs or is it going to be polling - polling atm - how to distingisuh between different sensor on/off frequency - maybe create a new class?? - LAST REVISED 13/02 */ #ifndef _SENSOR_MEASURE_H #define _SENSOR_MEASURE_H #define NUMBER_SAMPLES 40 // NUMBER OF SAMPLES FOR SENSOR TESTING //define pinout for all the sensors InterruptIn pin_right_right(PTD0); InterruptIn pin_right_centre(PTD1); InterruptIn pin_right_left(PTD2); InterruptIn pin_left_right(PTD3); InterruptIn pin_left_centre(PTD4); InterruptIn pin_left_left(PTD5); //InterruptIn in(PTD0); maybe more~? //timer used by the sensor Timer sensorTimer; //structure for sensors typedef struct sensor_data { InterruptIn pin; int black_value; int white_value; }sensor_data; //Decalre all the sensors //sample rightright sensor_data right_right; right_right.pin = pin_right_right; right_right.black_value = 2013; right_right.white_value = 10000; // and continue with the others.. //measuring function - returning whether it is black or white line //"1" - black, "0" - white int measure (sensor_data sensor){ sensorTimer.reset(); int freq,period = 0; int n =0; //number of samples int sensor_old = 0;//variable to remember old sensor state while (n < NUMBER_SAMPLES){ if (sensor.pin == 1 && sensor_old == 0){ // detect on rising edge n++; } sensor_old = sensor.pin; } period = sensorTimer.read_us()/(float)n; // Get time freq = (1/period)*1000000; // Convert period (in us) to frequency (Hz). Works up to 100kHz. return freq; } #endif