
test
Dependents: MouseHybridSenseCode
main.cpp@5:dfea493f7a12, 2018-03-11 (annotated)
- 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?
User | Revision | Line number | New 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 | } |