A simple library for controlling an MCP4241 digital potentiometer

Committer:
ollie8
Date:
Sat Feb 08 13:31:51 2014 +0000
Revision:
2:54e9d9ddc350
Parent:
0:f547d674e543
DigiPot can now be used in linear and log modes.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ollie8 0:f547d674e543 1 #ifndef DIGIPOT_H
ollie8 0:f547d674e543 2 #define DIGIPOT_H
ollie8 0:f547d674e543 3
ollie8 0:f547d674e543 4 #include <mbed.h>
ollie8 0:f547d674e543 5
ollie8 2:54e9d9ddc350 6 enum Mode {
ollie8 2:54e9d9ddc350 7 LINEAR, LOGARITHMIC
ollie8 2:54e9d9ddc350 8 };
ollie8 2:54e9d9ddc350 9
ollie8 0:f547d674e543 10 class DigiPot {
ollie8 0:f547d674e543 11
ollie8 0:f547d674e543 12 public:
ollie8 2:54e9d9ddc350 13 DigiPot(PinName miso, PinName mosi, PinName clk, PinName cs, Mode mode);
ollie8 0:f547d674e543 14 void increment();
ollie8 0:f547d674e543 15 void decrement();
ollie8 0:f547d674e543 16 void setLevel(unsigned char);
ollie8 0:f547d674e543 17 void mute();
ollie8 0:f547d674e543 18 void unmute();
ollie8 0:f547d674e543 19 unsigned char getLevel();
ollie8 0:f547d674e543 20 private:
ollie8 0:f547d674e543 21 SPI *spi;
ollie8 0:f547d674e543 22 DigitalOut *chsel;
ollie8 0:f547d674e543 23 unsigned char level;
ollie8 2:54e9d9ddc350 24 unsigned char percent;
ollie8 2:54e9d9ddc350 25 Mode mode;
ollie8 2:54e9d9ddc350 26 double scale;
ollie8 2:54e9d9ddc350 27 unsigned char round(double);
ollie8 0:f547d674e543 28 };
ollie8 0:f547d674e543 29
ollie8 0:f547d674e543 30 #endif