Gerhard van Lochem / Mbed 2 deprecated AmpCon
Committer:
gvloch
Date:
Wed Mar 16 10:20:41 2011 +0000
Revision:
0:70e79ca6391c

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gvloch 0:70e79ca6391c 1 //---------------------------------------------------------------------//
gvloch 0:70e79ca6391c 2 // Defines //
gvloch 0:70e79ca6391c 3 //---------------------------------------------------------------------//
gvloch 0:70e79ca6391c 4 #include "mbed.h"
gvloch 0:70e79ca6391c 5 #include "header.h"
gvloch 0:70e79ca6391c 6
gvloch 0:70e79ca6391c 7 DigitalOut led1(LED1);
gvloch 0:70e79ca6391c 8 DigitalOut led2(LED2);
gvloch 0:70e79ca6391c 9 PwmOut PWMSetup(p24);
gvloch 0:70e79ca6391c 10
gvloch 0:70e79ca6391c 11 //---------------------------------------------------------------------//
gvloch 0:70e79ca6391c 12 // Variables //
gvloch 0:70e79ca6391c 13 //---------------------------------------------------------------------//
gvloch 0:70e79ca6391c 14 int i=0,ms_counter=0;
gvloch 0:70e79ca6391c 15 char getkey;
gvloch 0:70e79ca6391c 16 extern float InputLightLevel; // in dBm
gvloch 0:70e79ca6391c 17 extern float OutputLightLevel; // in dBm
gvloch 0:70e79ca6391c 18 extern float ReflectedLightLevel; // in dBm
gvloch 0:70e79ca6391c 19 extern float PumpLightLevel1; // in dBm
gvloch 0:70e79ca6391c 20 extern float PumpLightLevel2; // in dBm
gvloch 0:70e79ca6391c 21 extern float InputLightLevelM;
gvloch 0:70e79ca6391c 22 extern float OutputLightLevelM;
gvloch 0:70e79ca6391c 23 extern float ReflectedLightLevelM;
gvloch 0:70e79ca6391c 24 extern float PumpLightLevel1M;
gvloch 0:70e79ca6391c 25 extern float PumpLightLevel2M;
gvloch 0:70e79ca6391c 26 extern float AmplifierGain; //in dB
gvloch 0:70e79ca6391c 27 extern float AmplifierPower; //in dBm
gvloch 0:70e79ca6391c 28 extern char AmplifierMode; // C = Constant Current, G = Constant Gain, P = constant output power
gvloch 0:70e79ca6391c 29 extern float PumpCurrent1; // mA
gvloch 0:70e79ca6391c 30 extern float PumpCurrent2; // mA
gvloch 0:70e79ca6391c 31 extern char SerialControl;
gvloch 0:70e79ca6391c 32 extern int DebugLevel;
gvloch 0:70e79ca6391c 33 extern char commandstring[16];
gvloch 0:70e79ca6391c 34 extern char commandstringlen;
gvloch 0:70e79ca6391c 35
gvloch 0:70e79ca6391c 36 //---------------------------------------------------------------------//
gvloch 0:70e79ca6391c 37 // Functions //
gvloch 0:70e79ca6391c 38 //---------------------------------------------------------------------//
gvloch 0:70e79ca6391c 39
gvloch 0:70e79ca6391c 40 Serial pc(USBTX, USBRX); // tx, rxSerial pc(USBTX, USBRX); // tx, rx
gvloch 0:70e79ca6391c 41 Ticker timer;
gvloch 0:70e79ca6391c 42
gvloch 0:70e79ca6391c 43 void SerialBuffer(void)
gvloch 0:70e79ca6391c 44 {
gvloch 0:70e79ca6391c 45 if(pc.readable())
gvloch 0:70e79ca6391c 46 {
gvloch 0:70e79ca6391c 47 getkey=pc.getc();
gvloch 0:70e79ca6391c 48 commandstring[i] = getkey;
gvloch 0:70e79ca6391c 49 i++;
gvloch 0:70e79ca6391c 50 }
gvloch 0:70e79ca6391c 51 if ((i>=15)||(getkey==0x0d)||(getkey=='.')||(getkey=='>')||(getkey==',')||(getkey=='<')||(getkey=='p')||(getkey=='P')||(getkey=='[')||(getkey==']')||(getkey=='*')||(getkey=='s')||(getkey=='?'))
gvloch 0:70e79ca6391c 52 {
gvloch 0:70e79ca6391c 53 getkey=0;
gvloch 0:70e79ca6391c 54 led2=1;
gvloch 0:70e79ca6391c 55 commandline();
gvloch 0:70e79ca6391c 56 led2=0;
gvloch 0:70e79ca6391c 57 i = 0;
gvloch 0:70e79ca6391c 58 }
gvloch 0:70e79ca6391c 59
gvloch 0:70e79ca6391c 60 }
gvloch 0:70e79ca6391c 61 void Tick() {
gvloch 0:70e79ca6391c 62
gvloch 0:70e79ca6391c 63 ReadADCValues();
gvloch 0:70e79ca6391c 64 ControlLoop();
gvloch 0:70e79ca6391c 65 WritePWMValues();
gvloch 0:70e79ca6391c 66 //SerialBuffer();
gvloch 0:70e79ca6391c 67
gvloch 0:70e79ca6391c 68 ms_counter++;
gvloch 0:70e79ca6391c 69 if (ms_counter>=1000) ms_counter=0;
gvloch 0:70e79ca6391c 70 if (ms_counter>500) led1 = 1; else led1 = 0; // show we are still alive
gvloch 0:70e79ca6391c 71 }
gvloch 0:70e79ca6391c 72 void Initialise(void)
gvloch 0:70e79ca6391c 73 {
gvloch 0:70e79ca6391c 74 ReadConfigFile();
gvloch 0:70e79ca6391c 75 timer.attach_us(&Tick, 1000);
gvloch 0:70e79ca6391c 76 PWMSetup.period_us(1000);
gvloch 0:70e79ca6391c 77 }
gvloch 0:70e79ca6391c 78 //---------------------------------------------------------------------//
gvloch 0:70e79ca6391c 79 // Main //
gvloch 0:70e79ca6391c 80 //---------------------------------------------------------------------//
gvloch 0:70e79ca6391c 81
gvloch 0:70e79ca6391c 82
gvloch 0:70e79ca6391c 83 int main() {
gvloch 0:70e79ca6391c 84
gvloch 0:70e79ca6391c 85 pc.baud(57600);
gvloch 0:70e79ca6391c 86 splashscreen();
gvloch 0:70e79ca6391c 87 wait_ms(200);
gvloch 0:70e79ca6391c 88 Initialise();
gvloch 0:70e79ca6391c 89
gvloch 0:70e79ca6391c 90
gvloch 0:70e79ca6391c 91 while(1)
gvloch 0:70e79ca6391c 92 {
gvloch 0:70e79ca6391c 93 waitforcommand();
gvloch 0:70e79ca6391c 94
gvloch 0:70e79ca6391c 95 }
gvloch 0:70e79ca6391c 96
gvloch 0:70e79ca6391c 97 }