123

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
167:bedc0a9d559a
Parent:
166:c3c0b8a90d81
Child:
173:7f938afb0447
--- a/DeviceISACS.c	Sun May 22 18:59:20 2016 +0000
+++ b/DeviceISACS.c	Sun Jun 05 11:03:33 2016 +0000
@@ -2,23 +2,25 @@
 
 extern Device device;
 
-void InitISACSOutputWithDefaults(void){
-  device.isacs.output.interpolator.settings.points = 2;
+void InitISACSOutputDefaultSettings(void){
+  device.isacs.output.settings.transfer.points = 2;
   //Control point 1.5 volt - low output limit
-  device.isacs.output.interpolator.settings.voltage[0] = 0x00017fff;
-  device.isacs.output.interpolator.settings.code[0] = 800;
+  device.isacs.output.settings.transfer.voltage[0] = 0x00017fff;
+  device.isacs.output.settings.transfer.code[0] = 800;
   //Control point 12.5 volt - high output limit
-  device.isacs.output.interpolator.settings.voltage[1] = 0x000c7fff;
-  device.isacs.output.interpolator.settings.code[1] = 2048;
-  device.isacs.output.start.settings.voltage = 0x000c7fff; //+12.5V start
-  device.isacs.output.reset.settings.voltage = 0x00077fff; //+7.5V if regulator disabled at reset time
+  device.isacs.output.settings.transfer.voltage[1] = 0x000c7fff;
+  device.isacs.output.settings.transfer.code[1] = 2048;
+  device.isacs.output.settings.start.voltage = 0x000c7fff; //+12.5V start
+  device.isacs.output.settings.reset.voltage = 0x00077fff; //+7.5V if regulator disabled at reset time
 }
 
-void InitISACSOutput(void){
-  //isacsSetOutputVoltage(device.isacs.output.start.settings.voltage);
+void InitISACSOutputState(void){
 }
 
-void InitISACSRegulatorWithDefaults(void){
+void DeviceStartISACSOutput(void){
+}
+
+void InitISACSRegulatorDefaultSettings(void){
   //Startup settings
   device.isacs.regulator.settings.start.enabled = 1;
   device.isacs.regulator.settings.start.reference = 0x00020000; //Reference voltage 2V in 16.16 signed fixed point format
@@ -33,25 +35,31 @@
   device.isacs.regulator.settings.reset.scale = 1; //Scale factor
 }
 
-void InitISACSRegulator(void){
+void InitISACSRegulatorState(void){
   device.isacs.regulator.state.enabled = device.isacs.regulator.settings.start.enabled;
   device.isacs.regulator.state.reference = device.isacs.regulator.settings.start.reference;
   device.isacs.regulator.state.scale = device.isacs.regulator.settings.start.scale;
 }
 
-void InitISACSWithDefaults(void){
-  InitISACSOutputWithDefaults();
-  InitISACSRegulatorWithDefaults();
-  InitISACSPotentiometersWithDefaults();
+void DeviceStartISACSRegulator(void){
+}
+
+void InitISACSDefaultSettings(void){
+  InitISACSPotentiometersDefaultSettings();
+  InitISACSRegulatorDefaultSettings();
+  InitISACSOutputDefaultSettings();
 }
 
-void InitISACS(void){
-  InitISACSOutput();
-  InitISACSRegulator();
-  InitISACSPotentiometers();
+void InitISACSState(void){
+  InitISACSPotentiometersState();
+  InitISACSRegulatorState();
+  InitISACSOutputState();
 }
 
-void StartISACS(void){
+void DeviceStartISACS(void){
+  DeviceStartISACSPotentiometers();
+  DeviceStartISACSRegulator();
+  DeviceStartISACSOutput();
 }
 
 /*
@@ -96,38 +104,38 @@
 
 int32_t isacsInputCodeToVoltage(uint32_t code) {
   int32_t c1, c2;
-  for (uint8_t i = 1; i < device.isacs.input.interpolator.settings.points; i++) {
-    c1 = device.isacs.input.interpolator.settings.code[i - 1];
+  for (uint8_t i = 1; i < device.isacs.input.settings.transfer.points; i++) {
+    c1 = device.isacs.input.settings.transfer.code[i - 1];
     if (code < c1) {
-      return device.isacs.input.interpolator.settings.voltage[i - 1];
+      return device.isacs.input.settings.transfer.voltage[i - 1];
     }
 
-    c2 = device.isacs.input.interpolator.settings.code[i];
+    c2 = device.isacs.input.settings.transfer.code[i];
     if (code < c2) {
-      int32_t v1 = device.isacs.input.interpolator.settings.voltage[i - 1];
-      int32_t v2 = device.isacs.input.interpolator.settings.voltage[i];
+      int32_t v1 = device.isacs.input.settings.transfer.voltage[i - 1];
+      int32_t v2 = device.isacs.input.settings.transfer.voltage[i];
       return isacsInterpolate(code, c1, c2, v1, v2);
     }
   }
-  return device.isacs.input.interpolator.settings.voltage[device.isacs.input.interpolator.settings.points - 1];  
+  return device.isacs.input.settings.transfer.voltage[device.isacs.input.settings.transfer.points - 1];  
 }
 
 int32_t isacsOutputVoltageToCode(uint32_t voltage) {
   int32_t v1, v2;
-  for (uint8_t i = 1; i < device.isacs.output.interpolator.settings.points; i++) {
-    v1 = device.isacs.output.interpolator.settings.voltage[i - 1];
+  for (uint8_t i = 1; i < device.isacs.output.settings.transfer.points; i++) {
+    v1 = device.isacs.output.settings.transfer.voltage[i - 1];
     if (voltage < v1) {
-      return device.isacs.output.interpolator.settings.code[i - 1];
+      return device.isacs.output.settings.transfer.code[i - 1];
     }
 
-    v2 = device.isacs.output.interpolator.settings.voltage[i];
+    v2 = device.isacs.output.settings.transfer.voltage[i];
     if (voltage < v2) {
-      int32_t c1 = device.isacs.output.interpolator.settings.code[i - 1];
-      int32_t c2 = device.isacs.output.interpolator.settings.code[i];
+      int32_t c1 = device.isacs.output.settings.transfer.code[i - 1];
+      int32_t c2 = device.isacs.output.settings.transfer.code[i];
       return isacsInterpolate(voltage, v1, v2, c1, c2);
     }
   }
-  return device.isacs.output.interpolator.settings.code[device.isacs.output.interpolator.settings.points - 1];
+  return device.isacs.output.settings.transfer.code[device.isacs.output.settings.transfer.points - 1];
 }
 
 /*
@@ -199,16 +207,16 @@
 */
 
 void isacsProcess(void) {
-  device.isacs.input.voltage = isacsInputCodeToVoltage(device.controller.SSP.in[4]);
-  device.isacs.input.sum += device.isacs.input.voltage;
+  device.isacs.input.state.voltage = isacsInputCodeToVoltage(device.controller.SSP.in[4]);
+  device.isacs.input.state.sum += device.isacs.input.state.voltage;
   if (device.measurement.counter == 31) {
-    device.isacs.input.average = device.isacs.input.sum >> 5;
-    device.isacs.input.sum = 0;
+    device.isacs.input.state.average = device.isacs.input.state.sum >> 5;
+    device.isacs.input.state.sum = 0;
     
     if (device.isacs.regulator.state.enabled) {
-      device.isacs.regulator.state.error = device.isacs.regulator.state.reference - device.isacs.input.average;
-      device.isacs.output.voltage += device.isacs.regulator.state.error * device.isacs.regulator.state.scale;
-      device.controller.SSP.out[0] = isacsOutputVoltageToCode(device.isacs.output.voltage);
+      device.isacs.regulator.state.error = device.isacs.regulator.state.reference - device.isacs.input.state.average;
+      device.isacs.output.state.voltage += device.isacs.regulator.state.error * device.isacs.regulator.state.scale;
+      device.controller.SSP.out[0] = isacsOutputVoltageToCode(device.isacs.output.state.voltage);
     }
   }
 }
\ No newline at end of file