Lol smth

Dependencies:   LocalPositionSystem MMA8451Q Motor_Driver Sensors mbed

Fork of TDP_main_BartFork by Yelfie

Committer:
Joseph_Penikis
Date:
Wed Feb 25 16:55:23 2015 +0000
Revision:
10:c9212bbfeae6
Parent:
9:718987b106a8
Child:
11:9e56d52485d1
Been testing Motor_Driver

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Joseph_Penikis 3:0274e082582e 1 // TESTING REPO COMMIT
Joseph_Penikis 3:0274e082582e 2
Reckstyle 2:e2adb7ab2947 3 /*
Reckstyle 2:e2adb7ab2947 4 ****** MAIN PROGRAM ******
Reckstyle 2:e2adb7ab2947 5
Reckstyle 2:e2adb7ab2947 6 TODO : organisational routine still to be decided.
Reckstyle 2:e2adb7ab2947 7 3 main approaches:
Reckstyle 2:e2adb7ab2947 8 -sequential prirority based tasks
Reckstyle 2:e2adb7ab2947 9 -Timer/Ticker driven with sequential prirority based tasks
Reckstyle 2:e2adb7ab2947 10 - interrupt driven from sensor inputs
Reckstyle 2:e2adb7ab2947 11
Reckstyle 2:e2adb7ab2947 12 Please consider that although it is an embedded envrionment we are NOT creating a HARD-TIME real time system - delays can be dealt with
Reckstyle 2:e2adb7ab2947 13 */
Reckstyle 2:e2adb7ab2947 14
Reckstyle 2:e2adb7ab2947 15
Reckstyle 2:e2adb7ab2947 16
Reckstyle 0:5ca0450111f3 17 #include "mbed.h"
Joseph_Penikis 10:c9212bbfeae6 18 //#include "sensor_measure.h"
Joseph_Penikis 5:2fc7bf0135d4 19 #include "Motor_Driver.h"
Reckstyle 9:718987b106a8 20 //#include "Sensors.h"
Reckstyle 0:5ca0450111f3 21
Joseph_Penikis 5:2fc7bf0135d4 22 #define PWM_PERIOD_US 10000
Reckstyle 0:5ca0450111f3 23
Joseph_Penikis 7:14af656b721f 24
Joseph_Penikis 10:c9212bbfeae6 25 DigitalOut led(LED1);
Joseph_Penikis 6:bea13722aae7 26
Joseph_Penikis 10:c9212bbfeae6 27 //Serial pc(USBTX, USBRX);
Reckstyle 9:718987b106a8 28
Joseph_Penikis 10:c9212bbfeae6 29 //Timer MeasureTimer; //Timer used for measurement
Joseph_Penikis 10:c9212bbfeae6 30
Joseph_Penikis 10:c9212bbfeae6 31 Motor_Driver motors(PTD4, PTA12, PTA4, PTA5, PTC9, PTC8, PWM_PERIOD_US);
Reckstyle 9:718987b106a8 32
Reckstyle 9:718987b106a8 33 /* For deleting
Reckstyle 9:718987b106a8 34 double measure1 (){
Reckstyle 9:718987b106a8 35
Reckstyle 9:718987b106a8 36
Reckstyle 9:718987b106a8 37
Reckstyle 9:718987b106a8 38 sensorTimer.reset();
Reckstyle 9:718987b106a8 39 double freq,period = 0.0;
Reckstyle 9:718987b106a8 40 int n =0; //number of samples
Reckstyle 9:718987b106a8 41 int sensor_old = 0;
Reckstyle 9:718987b106a8 42 int sensor_new = 0;//variable to remember old sensor state
Reckstyle 9:718987b106a8 43 double time_us = sensorTimer.read();
Reckstyle 9:718987b106a8 44 while (n < NUMBER_SAMPLES){
Reckstyle 9:718987b106a8 45 sensor_new = pin_right_right.read();
Reckstyle 9:718987b106a8 46 if ( sensor_new== 1 && sensor_old == 0){ // detect on rising edge ,sensor_old
Reckstyle 9:718987b106a8 47 n++;
Reckstyle 9:718987b106a8 48 }
Reckstyle 9:718987b106a8 49 sensor_old = sensor_new;
Reckstyle 9:718987b106a8 50
Reckstyle 9:718987b106a8 51 }
Reckstyle 9:718987b106a8 52 double time_us2 = sensorTimer.read();
Reckstyle 9:718987b106a8 53 // pc.printf(" delta time is %f , time 2 is %f " , (time_us2 - time_us), time_us2);
Reckstyle 9:718987b106a8 54 period = time_us2/((double)NUMBER_SAMPLES); // Get time
Reckstyle 9:718987b106a8 55 freq = (1/period); // Convert period (in us) to frequency (Hz). Works up to 100kHz.
Reckstyle 9:718987b106a8 56 // pc.printf(" period is %f ", period);
Reckstyle 9:718987b106a8 57
Reckstyle 9:718987b106a8 58 return freq;//(freq < sensor.black_value*2)? 1 : 0;
Reckstyle 9:718987b106a8 59 }
Reckstyle 9:718987b106a8 60 */
Reckstyle 9:718987b106a8 61
Joseph_Penikis 10:c9212bbfeae6 62 int main() {
Joseph_Penikis 10:c9212bbfeae6 63 motors.setSpeed(0.5f);
Joseph_Penikis 10:c9212bbfeae6 64 motors.forward();
Joseph_Penikis 10:c9212bbfeae6 65 wait(1);
Joseph_Penikis 10:c9212bbfeae6 66 motors.start(0);
Joseph_Penikis 10:c9212bbfeae6 67 led = 0;
Joseph_Penikis 5:2fc7bf0135d4 68
Joseph_Penikis 10:c9212bbfeae6 69 wait(2);
Joseph_Penikis 5:2fc7bf0135d4 70
Joseph_Penikis 5:2fc7bf0135d4 71 motors.setSpeed(1.0f);
Joseph_Penikis 10:c9212bbfeae6 72
Joseph_Penikis 10:c9212bbfeae6 73 wait(2);
Joseph_Penikis 10:c9212bbfeae6 74
Joseph_Penikis 10:c9212bbfeae6 75 led = 1;
Joseph_Penikis 10:c9212bbfeae6 76
Joseph_Penikis 10:c9212bbfeae6 77 motors.stop(0);
Joseph_Penikis 5:2fc7bf0135d4 78
Joseph_Penikis 5:2fc7bf0135d4 79 wait(3);
Joseph_Penikis 5:2fc7bf0135d4 80
Joseph_Penikis 5:2fc7bf0135d4 81 motors.reverse();
Joseph_Penikis 10:c9212bbfeae6 82 wait_ms(200);
Joseph_Penikis 5:2fc7bf0135d4 83
Joseph_Penikis 10:c9212bbfeae6 84 motors.start(0);
Joseph_Penikis 10:c9212bbfeae6 85 wait(3);
Joseph_Penikis 10:c9212bbfeae6 86 motors.stop(0);
Joseph_Penikis 5:2fc7bf0135d4 87
Joseph_Penikis 10:c9212bbfeae6 88 motors.setSteeringMode(PIVOT_CW);
Reckstyle 9:718987b106a8 89
Joseph_Penikis 10:c9212bbfeae6 90 wait(1);
Joseph_Penikis 10:c9212bbfeae6 91 motors.start(0);
Joseph_Penikis 10:c9212bbfeae6 92 wait(2);
Joseph_Penikis 10:c9212bbfeae6 93 motors.stop(0);
Joseph_Penikis 10:c9212bbfeae6 94 }
Joseph_Penikis 10:c9212bbfeae6 95
Joseph_Penikis 10:c9212bbfeae6 96 /*int main()
Joseph_Penikis 10:c9212bbfeae6 97 {
Joseph_Penikis 10:c9212bbfeae6 98 pc.baud(9600);
Joseph_Penikis 10:c9212bbfeae6 99
Joseph_Penikis 10:c9212bbfeae6 100 start_systick();
Reckstyle 9:718987b106a8 101
Joseph_Penikis 10:c9212bbfeae6 102 pc.printf("Started!");
Joseph_Penikis 10:c9212bbfeae6 103
Joseph_Penikis 10:c9212bbfeae6 104 int frequency;
Joseph_Penikis 10:c9212bbfeae6 105
Joseph_Penikis 10:c9212bbfeae6 106 while(1)
Joseph_Penikis 10:c9212bbfeae6 107 {
Joseph_Penikis 10:c9212bbfeae6 108 frequency = measure_clock_cycles(CHANNEL_1, 25);
Joseph_Penikis 10:c9212bbfeae6 109 pc.printf("Debug: %i\n", frequency);
Joseph_Penikis 10:c9212bbfeae6 110 wait_ms(200);
Joseph_Penikis 10:c9212bbfeae6 111 }
Joseph_Penikis 10:c9212bbfeae6 112 }*/