12bit 8ch ADC with SPI interface

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?

UserRevisionLine numberNew 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