Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:70e79ca6391c, 2011-03-16 (annotated)
- Committer:
- gvloch
- Date:
- Wed Mar 16 10:20:41 2011 +0000
- Revision:
- 0:70e79ca6391c
Who changed what in which revision?
| User | Revision | Line number | New 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 | } |