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 //Define the file once, in the C and C++ programming languages, an #include guard,is a particular construct used to
JamieBignell 5:dfea493f7a12 2 //avoid the problem of double inclusion when dealing with the include directive. The addition of #include guards to a header file is one way to make that file idempotent.
JamieBignell 3:7f44ab64e96b 3 #ifndef FUNCDEF_H
JamieBignell 3:7f44ab64e96b 4 #define FUNCDEF_H
JamieBignell 0:c0c329729a7a 5
JamieBignell 4:f1670eec4681 6 //Import Modules
JamieBignell 5:dfea493f7a12 7 #include <mbed.h>
JamieBignell 4:f1670eec4681 8
JamieBignell 4:f1670eec4681 9 //Set up PC link (comment out when not using), set up 9600 if using plotter
JamieBignell 3:7f44ab64e96b 10 static Serial pc = Serial(USBTX, USBRX);
JamieBignell 3:7f44ab64e96b 11
JamieBignell 5:dfea493f7a12 12 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
JamieBignell 4:f1670eec4681 13 //Pin Names
JamieBignell 3:7f44ab64e96b 14 #define sensor1pin A0
JamieBignell 3:7f44ab64e96b 15 #define sensor2pin A1
JamieBignell 3:7f44ab64e96b 16 #define sensor3pin A2
JamieBignell 3:7f44ab64e96b 17 #define sensor4pin A3
JamieBignell 3:7f44ab64e96b 18 #define sensor5pin A4
JamieBignell 3:7f44ab64e96b 19 #define sensor6pin A5
JamieBignell 3:7f44ab64e96b 20 #define sensor7pin A6
JamieBignell 3:7f44ab64e96b 21 #define sensor8pin D3
JamieBignell 3:7f44ab64e96b 22
JamieBignell 5:dfea493f7a12 23 #define leftMotorpin D6
JamieBignell 5:dfea493f7a12 24 #define rightMotorpin D1
JamieBignell 5:dfea493f7a12 25 #define beeperPin D10
JamieBignell 5:dfea493f7a12 26
JamieBignell 5:dfea493f7a12 27 #define Kp 50
JamieBignell 5:dfea493f7a12 28 #define Ki 0
JamieBignell 5:dfea493f7a12 29 #define Kd 0
JamieBignell 5:dfea493f7a12 30 #define Ac 10
JamieBignell 3:7f44ab64e96b 31
JamieBignell 5:dfea493f7a12 32 #define period_F6 716
JamieBignell 5:dfea493f7a12 33 #define period_E6 758
JamieBignell 5:dfea493f7a12 34 #define period_D6 851
JamieBignell 5:dfea493f7a12 35 #define period_B6 506
JamieBignell 5:dfea493f7a12 36 #define period_A6 568
JamieBignell 5:dfea493f7a12 37 //http://www.sengpielaudio.com/calculator-notenames.htm
JamieBignell 5:dfea493f7a12 38
JamieBignell 5:dfea493f7a12 39 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
JamieBignell 4:f1670eec4681 40 //Pin Definitions
JamieBignell 3:7f44ab64e96b 41 static DigitalOut LEDVal = DigitalOut(LED1);
JamieBignell 3:7f44ab64e96b 42
JamieBignell 5:dfea493f7a12 43 static PwmOut leftMotorVal=PwmOut(leftMotorpin);
JamieBignell 5:dfea493f7a12 44 static PwmOut rightMotorVal=PwmOut(rightMotorpin);
JamieBignell 5:dfea493f7a12 45 static PwmOut beeperVal = PwmOut(beeperPin);
JamieBignell 3:7f44ab64e96b 46
JamieBignell 3:7f44ab64e96b 47 static AnalogIn sensorPin[] = {A0,A1,A2,A3,A4,A5,A6,D3};
JamieBignell 3:7f44ab64e96b 48
JamieBignell 5:dfea493f7a12 49 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
JamieBignell 5:dfea493f7a12 50 //Global Variable Definitions
JamieBignell 5:dfea493f7a12 51 extern int sensorValue[8];
JamieBignell 5:dfea493f7a12 52
JamieBignell 5:dfea493f7a12 53 extern int sensorMinValue[8];
JamieBignell 5:dfea493f7a12 54 extern int sensorMaxValue[8];
JamieBignell 5:dfea493f7a12 55
JamieBignell 5:dfea493f7a12 56 extern int sensorMinValue1[8];
JamieBignell 5:dfea493f7a12 57 extern int sensorMaxValue1[8];
JamieBignell 5:dfea493f7a12 58
JamieBignell 5:dfea493f7a12 59 extern int sensorMinValue2[8];
JamieBignell 5:dfea493f7a12 60 extern int sensorMaxValue2[8];
JamieBignell 5:dfea493f7a12 61
JamieBignell 5:dfea493f7a12 62 extern int sensorThreshold[8];
JamieBignell 5:dfea493f7a12 63 extern int sensorErrors[8];
JamieBignell 5:dfea493f7a12 64
JamieBignell 5:dfea493f7a12 65 extern int Prop;
JamieBignell 5:dfea493f7a12 66 //extern int Inte;
JamieBignell 5:dfea493f7a12 67 //extern int Dere;
JamieBignell 5:dfea493f7a12 68 extern int errorVar;
JamieBignell 5:dfea493f7a12 69 extern int previousError;
JamieBignell 5:dfea493f7a12 70 extern int PIDs;
JamieBignell 5:dfea493f7a12 71 extern int accumulator;
JamieBignell 5:dfea493f7a12 72 extern int counter;
JamieBignell 5:dfea493f7a12 73 extern int delayBetweenPulses_ms;
JamieBignell 5:dfea493f7a12 74 extern int note;
JamieBignell 5:dfea493f7a12 75 extern int initialMotorspeed;
JamieBignell 5:dfea493f7a12 76 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
JamieBignell 3:7f44ab64e96b 77 //Function Definitions
JamieBignell 5:dfea493f7a12 78
JamieBignell 3:7f44ab64e96b 79 void CalibrateFunc(void);
JamieBignell 5:dfea493f7a12 80 void printCalibrateValues(void);
JamieBignell 4:f1670eec4681 81 void beep(int);
JamieBignell 5:dfea493f7a12 82 void senseFunc(void);
JamieBignell 5:dfea493f7a12 83 void calculateFunc(void);
JamieBignell 5:dfea493f7a12 84 void driveFunc(void);
JamieBignell 5:dfea493f7a12 85 void findLineFunc(void);
JamieBignell 5:dfea493f7a12 86 void errorAccumulate(void);
JamieBignell 0:c0c329729a7a 87
JamieBignell 3:7f44ab64e96b 88 #endif // FUNCDEF_H