12bit 8ch ADC with SPI interface
mcp3208.cpp@1:0876e83ba21b, 2012-10-24 (annotated)
- Committer:
- ykuroda
- Date:
- Wed Oct 24 05:52:21 2012 +0000
- Revision:
- 1:0876e83ba21b
- Parent:
- 0:2300f3b42cdb
refine code
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ykuroda | 0:2300f3b42cdb | 1 | // |
ykuroda | 0:2300f3b42cdb | 2 | // |
ykuroda | 0:2300f3b42cdb | 3 | // |
ykuroda | 0:2300f3b42cdb | 4 | #include "mcp3208.h" |
ykuroda | 0:2300f3b42cdb | 5 | |
ykuroda | 0:2300f3b42cdb | 6 | |
ykuroda | 0:2300f3b42cdb | 7 | MCP3208::MCP3208(PinName mosi, PinName miso, PinName clk, PinName cs) |
ykuroda | 0:2300f3b42cdb | 8 | : _spi(mosi,miso,clk), |
ykuroda | 0:2300f3b42cdb | 9 | _cs(cs), |
ykuroda | 1:0876e83ba21b | 10 | _vref(5.0) |
ykuroda | 0:2300f3b42cdb | 11 | { |
ykuroda | 0:2300f3b42cdb | 12 | _spi.frequency(2000000); |
ykuroda | 1:0876e83ba21b | 13 | _spi.format(12,3); |
ykuroda | 1:0876e83ba21b | 14 | _cs = 1; |
ykuroda | 0:2300f3b42cdb | 15 | } |
ykuroda | 0:2300f3b42cdb | 16 | |
ykuroda | 0:2300f3b42cdb | 17 | int |
ykuroda | 0:2300f3b42cdb | 18 | MCP3208::binary(int ch) |
ykuroda | 0:2300f3b42cdb | 19 | { |
ykuroda | 0:2300f3b42cdb | 20 | _cs = 0; |
ykuroda | 1:0876e83ba21b | 21 | int ret = _spi.write((0x18|ch)<<2); |
ykuroda | 0:2300f3b42cdb | 22 | int adb = _spi.write(0); |
ykuroda | 0:2300f3b42cdb | 23 | _cs = 1; |
ykuroda | 0:2300f3b42cdb | 24 | return adb; |
ykuroda | 0:2300f3b42cdb | 25 | } |
ykuroda | 0:2300f3b42cdb | 26 | |
ykuroda | 0:2300f3b42cdb | 27 | float |
ykuroda | 0:2300f3b42cdb | 28 | MCP3208::volt(int ch) |
ykuroda | 0:2300f3b42cdb | 29 | { |
ykuroda | 1:0876e83ba21b | 30 | return _vref * binary(ch) / 4095; |
ykuroda | 0:2300f3b42cdb | 31 | } |
ykuroda | 0:2300f3b42cdb | 32 |