123

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
149:abbf7663d27d
Child:
156:e68ee0bcdcda
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DeviceSSP.c	Tue May 03 05:12:26 2016 +0000
@@ -0,0 +1,70 @@
+#include "Device.h"
+extern Device device;
+
+void InitSSPWithDefaults(void){
+}
+
+void InitSSP(void){
+}
+
+void DeviceSSPReceive(void){
+  //Prepare ADCs for sampling
+  LPC_GPIO0->FIOCLR = 1<<16; //reset SSEL signal for ADCs
+  //Start ADCs sampling
+  LPC_GPIO0->FIOSET = 1<<16; //set SSEL signal for ADCs
+  //Get samples
+  uint32_t value;
+  device.SSP.accumulator[4] += LPC_SSP0->DR;
+  device.SSP.accumulator[3] += LPC_SSP0->DR;
+  device.SSP.accumulator[2] += LPC_SSP0->DR;
+  device.SSP.accumulator[1] += LPC_SSP0->DR;
+  device.SSP.accumulator[0] += LPC_SSP0->DR;
+  while (LPC_SSP0->SR & 0x00000004) value = LPC_SSP0->DR;
+  //Average samples for dither period
+  if (device.dither.state.inPeriodCounter == 0) {
+    for (uint8_t i = 0; i < 5; i++){
+      device.SSP.in[i] = device.SSP.accumulator[i] >> 5;
+      device.SSP.accumulator[i] = 0;  
+      device.SSP.dataReady = 1;
+    }
+  }
+}
+
+void DeviceSSPTransmit(uint8_t index){
+  LPC_GPIO0->FIOSET = 1<<23; //set SSEL signal for DACs
+  LPC_GPIO0->FIOCLR = 1<<23; //reset SSEL signal for DACs
+  
+  LPC_SSP0->DR=0x5555;
+  LPC_SSP0->DR=0x5555;
+  LPC_SSP0->DR=0x5555;
+
+  if (index){
+    LPC_SSP0->DR = 0x00000030; //Write DAC0
+    LPC_SSP0->DR = device.SSP.out[0];
+  } else {
+    LPC_SSP0->DR = 0x00000031; //Write DAC1
+    LPC_SSP0->DR = device.SSP.out[1];
+    /*
+    //Move to DevicePLCS from here as not SSP specific
+    uint32_t value;
+    switch(device.plcs.state.modulation) {
+        case 1://малое воздействие
+          value = device.SSP.DAC[1] + Gyro.StrayPLC_Pls;
+        break;
+        
+        case 3://малое воздействие
+          value = device.SSP.DAC[1] + Gyro.StrayPLC_Mns;
+        break;
+        
+        case 2://большое воздействие
+          value = device.SSP.DAC[1] + Gyro.StrayPLC_2Mode;
+        break;
+        
+        default://режим без воздействия
+          value = device.SSP.DAC[1];
+        break;
+    }
+    LPC_SSP0->DR = device.SSP.DAC[1];
+    */
+  }
+}
\ No newline at end of file