12bit 8ch ADC with SWSPI instead to support variable SPI bit length
Fork of MCP3208_Y by
Diff: mcp3208.cpp
- Revision:
- 0:2300f3b42cdb
- Child:
- 1:0876e83ba21b
diff -r 000000000000 -r 2300f3b42cdb mcp3208.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mcp3208.cpp Wed Oct 24 03:41:03 2012 +0000 @@ -0,0 +1,33 @@ +// +// +// +#include "mcp3208.h" + + +MCP3208::MCP3208(PinName mosi, PinName miso, PinName clk, PinName cs) +: _spi(mosi,miso,clk), + _cs(cs), + vref(5.0) +{ + _spi.frequency(2000000); + _spi.format(14,3); + _cs = 1; +} + +int +MCP3208::binary(int ch) +{ + _cs = 0; + int ret = _spi.write(0x18|ch); + int adb = _spi.write(0); + int dum = _spi.write(0); + _cs = 1; + return adb; +} + +float +MCP3208::volt(int ch) +{ + return vref * binary(ch) / 4095; +} +