123
Fork of LG by
Diff: DeviceISACS.h
- Revision:
- 161:efd949e8d536
- Child:
- 166:c3c0b8a90d81
diff -r 6170df6f5a5c -r efd949e8d536 DeviceISACS.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DeviceISACS.h Sun May 15 19:12:12 2016 +0000 @@ -0,0 +1,89 @@ +#ifndef __DEVICE_ISACS_H__ +#define __DEVICE_ISACS_H__ + +#include "DeviceISACSPotentiometers.h" + +//Information signal amplitude control system +// input(photodetector - amplifier - potentiometers - amplitude detector - ADC - low pass filter - code - voltage) +// regulator +// output(voltage - code - DAC - Amplifier - control unit - hfo) + +//Information signal amplitude control system output ( = DAC + amplifier + control unit + hfo) typedefs +typedef struct _DeviceISACSOutputSettings { + uint32_t points; //Number of actual control points (up to 16) + uint32_t voltage[16]; //Output voltage control points in signed 16.16 fixed point format + uint32_t code[16]; //DAC code control points +} DeviceISACSOutputSettings; + +typedef struct _DeviceISACSOutputState { + uint32_t voltage; //Output voltage + uint32_t code; //DAC code +} DeviceISACSOutputState; + +typedef struct _DeviceISACSOutput { + DeviceISACSOutputSettings settings; + DeviceISACSOutputState state; +} DeviceISACSOutput; + +/* +//Information signal amplitude control system control amplifier (DAC - amplifier - control unit - hfo) typedefs +typedef struct _DeviceISASAmplifierSettings { + uint32_t reference; //Reference voltage + uint32_t gain; //Amplifier gain +} DeviceISASAmplifierSettings; + +typedef struct _DeviceISASAmplifier { + DeviceISASAmplifierSettings settings; +} DeviceISASAmplifier; +*/ + +//Information signal amplitude control system regulator typedefs +typedef struct _DeviceISACSRegulatorConditionSettings { + uint32_t reference; //signed 16.16 format reference voltage + uint32_t scale; //signed 16.16 format regulator scale factor +} DeviceISACSRegulatorConditionSettings; + +typedef struct _DeviceISACSRegulatorSettings { + uint8_t enabled; + DeviceISACSRegulatorConditionSettings start; //settings for PLCS system in start condition + DeviceISACSRegulatorConditionSettings regular; //settings for PLCS system in normal condition + DeviceISACSRegulatorConditionSettings reset; //settings for PLCS system in reset condition +} DeviceISACSRegulatorSettings; + +typedef struct _DeviceISACSRegulatorState { + uint8_t enabled; + uint32_t reference; //signed 16.16 format reference voltage + uint32_t scale; //signed 16.16 format regulator scale factor + uint32_t error; //signed 16.16 format regulator error +} DeviceISACSRegulatorState; + +typedef struct _DeviceISACSRegulator { + DeviceISACSRegulatorSettings settings; + DeviceISACSRegulatorState state; +} DeviceISACSRegulator; + +//Information signal amplitude control system typedefs +// Information signal amplitude control system ADC: device.controller.SSP.ADC[4] +// Information signal amplitude control system DAC: device.controller.SSP.DAC[0] +typedef struct _DeviceISACS { + DeviceISACSPotentiometers potentiometers; + //DeviceISASAmplifier amplifier; + DeviceISACSOutput output; + DeviceISACSRegulator regulator; +} DeviceISACS; + +//Information signal amplitude stabilizer functions +void InitISACSPotentiometersWithDefaults(void); +void InitISACSPotentiometers(void); + +void InitISACSOutputWithDefaults(void); +void InitISACSOutput(void); + +void InitISACSRegulatorWithDefaults(void); +void InitISACSRegulator(void); + +void InitISACSWithDefaults(void); +void InitISACS(void); +void StartISACS(void); + +#endif /* __DEVICE_ISACS_H__ */ \ No newline at end of file