test

Dependencies:   mbed

Dependents:   MouseHybridSenseCode

Committer:
JamieBignell
Date:
Sun Mar 11 13:15:34 2018 +0000
Revision:
5:dfea493f7a12
Parent:
4:f1670eec4681
Child:
6:a652deaae134
11/03/18 First final version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JamieBignell 5:dfea493f7a12 1 #include <mbed.h>
JamieBignell 5:dfea493f7a12 2 #include <funcdef.h>
JamieBignell 5:dfea493f7a12 3 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
JamieBignell 5:dfea493f7a12 4 //Initialise Global Variables
JamieBignell 5:dfea493f7a12 5
JamieBignell 5:dfea493f7a12 6 int sensorValue[] = {0,0,0,0,0,0,0,0};
JamieBignell 5:dfea493f7a12 7
JamieBignell 5:dfea493f7a12 8 int sensorMinValue[] = {0,0,0,0,0,0,0,0};
JamieBignell 5:dfea493f7a12 9 int sensorMaxValue[] = {0,0,0,0,0,0,0,0};
JamieBignell 5:dfea493f7a12 10
JamieBignell 5:dfea493f7a12 11 int sensorMinValue1[] = {0,0,0,0,0,0,0,0};
JamieBignell 5:dfea493f7a12 12 int sensorMaxValue1[] = {0,0,0,0,0,0,0,0};
JamieBignell 5:dfea493f7a12 13
JamieBignell 5:dfea493f7a12 14 int sensorMinValue2[] = {0,0,0,0,0,0,0,0};
JamieBignell 5:dfea493f7a12 15 int sensorMaxValue2[] = {0,0,0,0,0,0,0,0};
JamieBignell 5:dfea493f7a12 16
JamieBignell 5:dfea493f7a12 17 int sensorThreshold[] = {0,0,0,0,0,0,0,0};
JamieBignell 5:dfea493f7a12 18 int sensorErrors[] = {0,0,0,0,0,0,0,0};
JamieBignell 5:dfea493f7a12 19
JamieBignell 5:dfea493f7a12 20 int Prop=0;
JamieBignell 5:dfea493f7a12 21 //int Inte;//=0;
JamieBignell 5:dfea493f7a12 22 //int Dere;//=0;
JamieBignell 5:dfea493f7a12 23 int errorVar=0;
JamieBignell 5:dfea493f7a12 24 int previousError=0;
JamieBignell 5:dfea493f7a12 25 int PIDs=0;
JamieBignell 5:dfea493f7a12 26 int accumulator=0;
JamieBignell 5:dfea493f7a12 27 int counter=0;
JamieBignell 5:dfea493f7a12 28 int delayBetweenPulses_ms=0;
JamieBignell 5:dfea493f7a12 29 int note=0;
JamieBignell 5:dfea493f7a12 30 int initialMotorspeed = 250;
JamieBignell 5:dfea493f7a12 31 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
JamieBignell 5:dfea493f7a12 32 //Interupt Definition
JamieBignell 5:dfea493f7a12 33
JamieBignell 5:dfea493f7a12 34 Ticker beeper;
JamieBignell 5:dfea493f7a12 35 void beep()
JamieBignell 5:dfea493f7a12 36 {
JamieBignell 5:dfea493f7a12 37 if (counter == 5)
JamieBignell 5:dfea493f7a12 38 {
JamieBignell 5:dfea493f7a12 39 beeperVal.pulsewidth_us(0);
JamieBignell 5:dfea493f7a12 40 counter=(-1*((delayBetweenPulses_ms/10)+1));
JamieBignell 5:dfea493f7a12 41 }
JamieBignell 5:dfea493f7a12 42 else if (counter==0)
JamieBignell 5:dfea493f7a12 43 {
JamieBignell 5:dfea493f7a12 44 beeperVal.period_us(note);
JamieBignell 5:dfea493f7a12 45 beeperVal.pulsewidth_us(note/2);
JamieBignell 5:dfea493f7a12 46 }
JamieBignell 5:dfea493f7a12 47 counter++;
JamieBignell 5:dfea493f7a12 48 return;
JamieBignell 5:dfea493f7a12 49 }
JamieBignell 5:dfea493f7a12 50
JamieBignell 5:dfea493f7a12 51 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
JamieBignell 5:dfea493f7a12 52 //Main Code
JamieBignell 0:c0c329729a7a 53
JamieBignell 3:7f44ab64e96b 54 int main()
JamieBignell 5:dfea493f7a12 55 {
JamieBignell 5:dfea493f7a12 56 //CONFIGURE BEEPER
JamieBignell 5:dfea493f7a12 57 note=period_F6;
JamieBignell 5:dfea493f7a12 58 beeperVal.period_us(note);
JamieBignell 5:dfea493f7a12 59 beeperVal.pulsewidth_us(0);
JamieBignell 4:f1670eec4681 60
JamieBignell 5:dfea493f7a12 61 //CONFIGURE MOTORS & TURN OFF LED
JamieBignell 4:f1670eec4681 62 LEDVal=0;
JamieBignell 5:dfea493f7a12 63 leftMotorVal.period_us(1000);
JamieBignell 5:dfea493f7a12 64 rightMotorVal.period_us(1000);
JamieBignell 5:dfea493f7a12 65 leftMotorVal.pulsewidth_us(0);
JamieBignell 5:dfea493f7a12 66 rightMotorVal.pulsewidth_us(0);
JamieBignell 4:f1670eec4681 67
JamieBignell 5:dfea493f7a12 68 wait_ms(1000);
JamieBignell 4:f1670eec4681 69
JamieBignell 5:dfea493f7a12 70 //START BEEPER 20HZ % TURN LED ON
JamieBignell 5:dfea493f7a12 71 LEDVal=1;
JamieBignell 5:dfea493f7a12 72 counter=0;
JamieBignell 5:dfea493f7a12 73 delayBetweenPulses_ms=50;
JamieBignell 5:dfea493f7a12 74 beeper.attach(&beep, 0.01);
JamieBignell 5:dfea493f7a12 75 //beeper.detach();
JamieBignell 4:f1670eec4681 76
JamieBignell 5:dfea493f7a12 77 //BEGIN CALIBRATION
JamieBignell 5:dfea493f7a12 78 CalibrateFunc();
JamieBignell 5:dfea493f7a12 79 printCalibrateValues();
JamieBignell 4:f1670eec4681 80
JamieBignell 5:dfea493f7a12 81 //TURN OFF LED AND SET PULSES TO 2 HZ
JamieBignell 5:dfea493f7a12 82 LEDVal=0;
JamieBignell 5:dfea493f7a12 83 counter=0;
JamieBignell 5:dfea493f7a12 84 delayBetweenPulses_ms=500;
JamieBignell 5:dfea493f7a12 85 //beeper.attach(&beep, 0.01);
JamieBignell 4:f1670eec4681 86
JamieBignell 5:dfea493f7a12 87 //WAIT 3 SECONDS AND DETACH BEEPER FOR MAIN RUN
JamieBignell 5:dfea493f7a12 88 counter=0;
JamieBignell 5:dfea493f7a12 89 beeper.detach();
JamieBignell 5:dfea493f7a12 90 wait_ms(3000);
JamieBignell 5:dfea493f7a12 91 /*
JamieBignell 5:dfea493f7a12 92 //FIND LINE
JamieBignell 5:dfea493f7a12 93 findLineFunc();
JamieBignell 5:dfea493f7a12 94 counter=0;
JamieBignell 5:dfea493f7a12 95 delayBetweenPulses_ms=500;
JamieBignell 5:dfea493f7a12 96 beeper.attach(&beep, 0.01);
JamieBignell 4:f1670eec4681 97
JamieBignell 5:dfea493f7a12 98 //ONCE FOUND, HAND OVER TO MAIN ALGORITHM
JamieBignell 4:f1670eec4681 99
JamieBignell 5:dfea493f7a12 100 while(1)
JamieBignell 5:dfea493f7a12 101 {
JamieBignell 5:dfea493f7a12 102 senseFunc();
JamieBignell 5:dfea493f7a12 103 calculateFunc();
JamieBignell 5:dfea493f7a12 104 driveFunc();
JamieBignell 4:f1670eec4681 105 }
JamieBignell 5:dfea493f7a12 106 */
JamieBignell 3:7f44ab64e96b 107 return 0;
JamieBignell 3:7f44ab64e96b 108 }