simple MCP4XXX digital potentiometer library

datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/22060b.pdf

Committer:
jyam
Date:
Wed Nov 27 07:13:25 2013 +0000
Revision:
1:d0bc73e899a3
Parent:
0:dc2196d5163f
clarify variable names

Who changed what in which revision?

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