simple MCP4XXX digital potentiometer library
datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/22060b.pdf
MCP4XXX.cpp@2:314126c6d325, 2013-11-27 (annotated)
- Committer:
- jyam
- Date:
- Wed Nov 27 18:26:07 2013 +0000
- Revision:
- 2:314126c6d325
- Parent:
- 1:d0bc73e899a3
default isP0 to true
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jyam | 0:dc2196d5163f | 1 | #include "MCP4XXX.h" |
jyam | 0:dc2196d5163f | 2 | |
jyam | 0:dc2196d5163f | 3 | MCP4XXX::MCP4XXX(PinName miso, PinName mosi, PinName clk, PinName cs) { |
jyam | 0:dc2196d5163f | 4 | _cs = new DigitalOut(cs); |
jyam | 0:dc2196d5163f | 5 | _spi = new SPI(miso, mosi, clk); |
jyam | 0:dc2196d5163f | 6 | _spi->format(8,0); |
jyam | 0:dc2196d5163f | 7 | _spi->frequency(1000000); |
jyam | 0:dc2196d5163f | 8 | _lvl = 0x00; |
jyam | 0:dc2196d5163f | 9 | } |
jyam | 0:dc2196d5163f | 10 | |
jyam | 0:dc2196d5163f | 11 | MCP4XXX::~MCP4XXX() |
jyam | 0:dc2196d5163f | 12 | { |
jyam | 0:dc2196d5163f | 13 | delete _cs; |
jyam | 0:dc2196d5163f | 14 | delete _spi; |
jyam | 0:dc2196d5163f | 15 | } |
jyam | 0:dc2196d5163f | 16 | |
jyam | 1:d0bc73e899a3 | 17 | void MCP4XXX::setLevel(unsigned char lvl, bool isP0) { |
jyam | 0:dc2196d5163f | 18 | *_cs = 0; |
jyam | 1:d0bc73e899a3 | 19 | if (isP0) |
jyam | 1:d0bc73e899a3 | 20 | _spi->write(P0_ADDR); |
jyam | 0:dc2196d5163f | 21 | else |
jyam | 1:d0bc73e899a3 | 22 | _spi->write(P1_ADDR); |
jyam | 0:dc2196d5163f | 23 | _spi->write(lvl); |
jyam | 0:dc2196d5163f | 24 | *_cs = 1; |
jyam | 0:dc2196d5163f | 25 | _lvl = lvl; |
jyam | 0:dc2196d5163f | 26 | } |
jyam | 0:dc2196d5163f | 27 | |
jyam | 0:dc2196d5163f | 28 | unsigned char MCP4XXX::getLevel() { |
jyam | 0:dc2196d5163f | 29 | return _lvl; |
jyam | 0:dc2196d5163f | 30 | } |