123

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
161:efd949e8d536
Child:
166:c3c0b8a90d81
--- /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