SPI 12bit D/A 2ch MCP4922 library

Revision:
0:2e338068a5a7
Child:
1:6c010acaae66
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MCP4922.cpp	Mon Aug 05 03:53:01 2019 +0000
@@ -0,0 +1,31 @@
+#include "MCP4922.h"
+#include "mbed.h"
+
+MCP4922::MCP4922(PinName MOSI,PinName MISO,PinName SCK,PinName CS,PinName LDAC):
+    dac_SPI(MOSI,MISO,SCK),dac_cs(CS),dac_l(LDAC)
+{
+    dac_SPI.format(16,0);
+    dac_SPI.frequency(20000000);
+    dac_cs=1;
+    dac_l=1;
+}
+
+void MCP4922::write(int ch,float value)
+{
+    if(value<0) {
+        value=0;
+    } else if(value>1) {
+        value=1;
+    }
+    dac_cs=0;
+    int data;
+    if(ch==0) {
+        data=(0b0011<<12)|(int)(value*0xFFF);
+    } else if(ch==1) {
+        data=(0b1011<<12)|(int)(value*0xFFF);
+    }
+    dac_SPI.write(data);
+    dac_cs=1;
+    dac_l=0;
+    dac_l=1;
+}