most functionality to splashdwon, find neutral and start mission. short timeouts still in code for testing, will adjust to go directly to sit_idle after splashdown

Dependencies:   mbed MODSERIAL FATFileSystem

Revision:
9:d5fcdcb3c89d
Child:
10:085ab7328054
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LTC1298/ltc1298.cpp	Fri Oct 20 11:41:22 2017 +0000
@@ -0,0 +1,76 @@
+#include "ltc1298.hpp"
+
+SpiADC::SpiADC(): _spi(p5,p6,p7),adcLed(LED2),cs(p8) //maybe this should configurable on construction
+{
+
+}
+
+void SpiADC::initialize()
+{
+    //set up the spi bus and frequency
+    _spi.format(13,0);
+    _spi.frequency(1000000);
+    //chip select high puts ltc1298 in standby
+    adcLed = 1;
+    ch0_filt = 0;
+    ch1_filt = 0;
+    cs = 1;
+
+}
+
+//This starts an interupt driven trigger of the external ADC
+void SpiADC::start()
+{
+    interval.attach_us(this, &SpiADC::update, 100);  //this should be a 10 kHz sample rate
+}
+
+//This stops it
+void SpiADC::stop()
+{
+    interval.detach();
+}
+
+
+void SpiADC::update()
+{
+    //flash the LED
+    adcLed = !adcLed;
+
+    //chip select low starts data conversion
+    cs = 0;
+    //the next thing is the input data word
+    //it is 4 bits and looks like this
+    // | start | single/diff | odd/sign | MSB first/LSB first |
+    // if you want single ended on channel 0 MSB first then input 0xD
+    // if you want single ended on channel 1 MSB first then input 0xF
+
+    // get channel 0
+    unsigned int byte = _spi.write(0xD);
+    //send a dummy byte to receive the data
+    unsigned int byte1 = _spi.write(0x0);
+    ch0_raw = byte1;
+    ch0_filt  += (ch0_raw - ch0_filt)/CH0OVERSAMPLE;
+
+    cs = 1;
+    cs = 0;
+
+    byte = _spi.write(0xF);
+    //send a dummy byte to receive the data
+    byte1 = _spi.write(0x0);
+    ch1_raw = byte1;
+    ch1_filt += (ch1_raw - ch1_filt)/CH1OVERSAMPLE;
+
+    //switch chip select back to high
+    cs = 1;
+    return ;
+}
+
+int SpiADC::readCh0()
+{
+    return ch0_filt;
+}
+
+int SpiADC::readCh1()
+{
+    return ch1_filt;
+}
\ No newline at end of file