123
Fork of LG by
DeviceISACS.h@161:efd949e8d536, 2016-05-15 (annotated)
- Committer:
- Diletant
- Date:
- Sun May 15 19:12:12 2016 +0000
- Revision:
- 161:efd949e8d536
- Child:
- 166:c3c0b8a90d81
Device & ... update. Not final!!!
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Diletant | 161:efd949e8d536 | 1 | #ifndef __DEVICE_ISACS_H__ |
Diletant | 161:efd949e8d536 | 2 | #define __DEVICE_ISACS_H__ |
Diletant | 161:efd949e8d536 | 3 | |
Diletant | 161:efd949e8d536 | 4 | #include "DeviceISACSPotentiometers.h" |
Diletant | 161:efd949e8d536 | 5 | |
Diletant | 161:efd949e8d536 | 6 | //Information signal amplitude control system |
Diletant | 161:efd949e8d536 | 7 | // input(photodetector - amplifier - potentiometers - amplitude detector - ADC - low pass filter - code - voltage) |
Diletant | 161:efd949e8d536 | 8 | // regulator |
Diletant | 161:efd949e8d536 | 9 | // output(voltage - code - DAC - Amplifier - control unit - hfo) |
Diletant | 161:efd949e8d536 | 10 | |
Diletant | 161:efd949e8d536 | 11 | //Information signal amplitude control system output ( = DAC + amplifier + control unit + hfo) typedefs |
Diletant | 161:efd949e8d536 | 12 | typedef struct _DeviceISACSOutputSettings { |
Diletant | 161:efd949e8d536 | 13 | uint32_t points; //Number of actual control points (up to 16) |
Diletant | 161:efd949e8d536 | 14 | uint32_t voltage[16]; //Output voltage control points in signed 16.16 fixed point format |
Diletant | 161:efd949e8d536 | 15 | uint32_t code[16]; //DAC code control points |
Diletant | 161:efd949e8d536 | 16 | } DeviceISACSOutputSettings; |
Diletant | 161:efd949e8d536 | 17 | |
Diletant | 161:efd949e8d536 | 18 | typedef struct _DeviceISACSOutputState { |
Diletant | 161:efd949e8d536 | 19 | uint32_t voltage; //Output voltage |
Diletant | 161:efd949e8d536 | 20 | uint32_t code; //DAC code |
Diletant | 161:efd949e8d536 | 21 | } DeviceISACSOutputState; |
Diletant | 161:efd949e8d536 | 22 | |
Diletant | 161:efd949e8d536 | 23 | typedef struct _DeviceISACSOutput { |
Diletant | 161:efd949e8d536 | 24 | DeviceISACSOutputSettings settings; |
Diletant | 161:efd949e8d536 | 25 | DeviceISACSOutputState state; |
Diletant | 161:efd949e8d536 | 26 | } DeviceISACSOutput; |
Diletant | 161:efd949e8d536 | 27 | |
Diletant | 161:efd949e8d536 | 28 | /* |
Diletant | 161:efd949e8d536 | 29 | //Information signal amplitude control system control amplifier (DAC - amplifier - control unit - hfo) typedefs |
Diletant | 161:efd949e8d536 | 30 | typedef struct _DeviceISASAmplifierSettings { |
Diletant | 161:efd949e8d536 | 31 | uint32_t reference; //Reference voltage |
Diletant | 161:efd949e8d536 | 32 | uint32_t gain; //Amplifier gain |
Diletant | 161:efd949e8d536 | 33 | } DeviceISASAmplifierSettings; |
Diletant | 161:efd949e8d536 | 34 | |
Diletant | 161:efd949e8d536 | 35 | typedef struct _DeviceISASAmplifier { |
Diletant | 161:efd949e8d536 | 36 | DeviceISASAmplifierSettings settings; |
Diletant | 161:efd949e8d536 | 37 | } DeviceISASAmplifier; |
Diletant | 161:efd949e8d536 | 38 | */ |
Diletant | 161:efd949e8d536 | 39 | |
Diletant | 161:efd949e8d536 | 40 | //Information signal amplitude control system regulator typedefs |
Diletant | 161:efd949e8d536 | 41 | typedef struct _DeviceISACSRegulatorConditionSettings { |
Diletant | 161:efd949e8d536 | 42 | uint32_t reference; //signed 16.16 format reference voltage |
Diletant | 161:efd949e8d536 | 43 | uint32_t scale; //signed 16.16 format regulator scale factor |
Diletant | 161:efd949e8d536 | 44 | } DeviceISACSRegulatorConditionSettings; |
Diletant | 161:efd949e8d536 | 45 | |
Diletant | 161:efd949e8d536 | 46 | typedef struct _DeviceISACSRegulatorSettings { |
Diletant | 161:efd949e8d536 | 47 | uint8_t enabled; |
Diletant | 161:efd949e8d536 | 48 | DeviceISACSRegulatorConditionSettings start; //settings for PLCS system in start condition |
Diletant | 161:efd949e8d536 | 49 | DeviceISACSRegulatorConditionSettings regular; //settings for PLCS system in normal condition |
Diletant | 161:efd949e8d536 | 50 | DeviceISACSRegulatorConditionSettings reset; //settings for PLCS system in reset condition |
Diletant | 161:efd949e8d536 | 51 | } DeviceISACSRegulatorSettings; |
Diletant | 161:efd949e8d536 | 52 | |
Diletant | 161:efd949e8d536 | 53 | typedef struct _DeviceISACSRegulatorState { |
Diletant | 161:efd949e8d536 | 54 | uint8_t enabled; |
Diletant | 161:efd949e8d536 | 55 | uint32_t reference; //signed 16.16 format reference voltage |
Diletant | 161:efd949e8d536 | 56 | uint32_t scale; //signed 16.16 format regulator scale factor |
Diletant | 161:efd949e8d536 | 57 | uint32_t error; //signed 16.16 format regulator error |
Diletant | 161:efd949e8d536 | 58 | } DeviceISACSRegulatorState; |
Diletant | 161:efd949e8d536 | 59 | |
Diletant | 161:efd949e8d536 | 60 | typedef struct _DeviceISACSRegulator { |
Diletant | 161:efd949e8d536 | 61 | DeviceISACSRegulatorSettings settings; |
Diletant | 161:efd949e8d536 | 62 | DeviceISACSRegulatorState state; |
Diletant | 161:efd949e8d536 | 63 | } DeviceISACSRegulator; |
Diletant | 161:efd949e8d536 | 64 | |
Diletant | 161:efd949e8d536 | 65 | //Information signal amplitude control system typedefs |
Diletant | 161:efd949e8d536 | 66 | // Information signal amplitude control system ADC: device.controller.SSP.ADC[4] |
Diletant | 161:efd949e8d536 | 67 | // Information signal amplitude control system DAC: device.controller.SSP.DAC[0] |
Diletant | 161:efd949e8d536 | 68 | typedef struct _DeviceISACS { |
Diletant | 161:efd949e8d536 | 69 | DeviceISACSPotentiometers potentiometers; |
Diletant | 161:efd949e8d536 | 70 | //DeviceISASAmplifier amplifier; |
Diletant | 161:efd949e8d536 | 71 | DeviceISACSOutput output; |
Diletant | 161:efd949e8d536 | 72 | DeviceISACSRegulator regulator; |
Diletant | 161:efd949e8d536 | 73 | } DeviceISACS; |
Diletant | 161:efd949e8d536 | 74 | |
Diletant | 161:efd949e8d536 | 75 | //Information signal amplitude stabilizer functions |
Diletant | 161:efd949e8d536 | 76 | void InitISACSPotentiometersWithDefaults(void); |
Diletant | 161:efd949e8d536 | 77 | void InitISACSPotentiometers(void); |
Diletant | 161:efd949e8d536 | 78 | |
Diletant | 161:efd949e8d536 | 79 | void InitISACSOutputWithDefaults(void); |
Diletant | 161:efd949e8d536 | 80 | void InitISACSOutput(void); |
Diletant | 161:efd949e8d536 | 81 | |
Diletant | 161:efd949e8d536 | 82 | void InitISACSRegulatorWithDefaults(void); |
Diletant | 161:efd949e8d536 | 83 | void InitISACSRegulator(void); |
Diletant | 161:efd949e8d536 | 84 | |
Diletant | 161:efd949e8d536 | 85 | void InitISACSWithDefaults(void); |
Diletant | 161:efd949e8d536 | 86 | void InitISACS(void); |
Diletant | 161:efd949e8d536 | 87 | void StartISACS(void); |
Diletant | 161:efd949e8d536 | 88 | |
Diletant | 161:efd949e8d536 | 89 | #endif /* __DEVICE_ISACS_H__ */ |