SPI 12bit D/A 2ch MCP4922 library
Diff: MCP4922.cpp
- Revision:
- 0:2e338068a5a7
- Child:
- 1:6c010acaae66
diff -r 000000000000 -r 2e338068a5a7 MCP4922.cpp --- /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; +}