Class for AD7390, a 12 bit SPI driven external DAC from Analog Devices.

Dependencies:   mbed

Datasheet - http://www.analog.com/static/imported-files/data_sheets/AD7390_7391.pdf

Revision:
1:19818c103c9c
Parent:
0:82cd70f9fc3f
Child:
3:37ec9ea72264
--- a/AD7390.cpp	Sat Apr 05 19:08:44 2014 +0000
+++ b/AD7390.cpp	Sat Apr 05 20:45:08 2014 +0000
@@ -1,24 +1,43 @@
 # include "AD7390.h"
 
-AD7390::AD7390(PinName data, PinName clock, PinName resetpin, PinName latchpin, float RefV) : //Mosi, sclk 2x digital out refV
+AD7390::AD7390(PinName data, PinName clock, PinName resetpin, PinName latchpin, float RefV, unsigned int freq) : //Mosi, sclk 2x digital out refV, previously missed scope operator.
     reset(resetpin), latch(latchpin), spi(data, NC, clock)
     {
         //Vout = (Vref*D)/2^n
         spi.format(12,0);
-        latch = 1;      //Pull low to pass shift register to DAC register
-        reset = 1;      //Pull low to reset 
+        spi.frequency(freq);
+        latch = 1;                                      //Pull low to pass shift register to DAC register
+        reset = 1;
     }
     
-    void AD7390::Reset()        //Reset ADC to 0V by pulling reset pin low
+    void AD7390::Reset()                                //Reset ADC to 0V by pulling reset pin low
     {
         reset = 0;
         wait_us(25);
-        reset = 1;              //Set back to high so it can be written to again
+        reset = 1;                                      //Set back to high so it can be written to again
     }
-    void AD7390::Latch()        //Latch data from shift register to DAC
+    void AD7390::Latch()                                //Latch data from shift register to DAC
     {
         latch = 0;
         wait_us(25);
         latch = 1;
     }
+    void AD7390::Write(float Volts)                     //write will require seperate latch after
+    {
+        unsigned int send = 0x0000;
+        send = (unsigned int) ((4096/RefV)*Volts);
+        spi.write(send);
+    }
+    void AD7390::WriteL(float volts)                    //Same as write but with latch attached
+    {
+        unsigned int Send = 0x0000;
+        Send = (unsigned int) ((4096/RefV)*volts);      //parse float into unsigned int to send to DAC
+        spi.write(Send);
+        latch = 0;
+        wait_us(25);
+        latch = 1;
+    }
+        
+        
+    
     
\ No newline at end of file