123
Fork of LG by
DeviceISACS.h
- Committer:
- Diletant
- Date:
- 2016-05-15
- Revision:
- 161:efd949e8d536
- Child:
- 166:c3c0b8a90d81
File content as of revision 161:efd949e8d536:
#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__ */