A simple library for controlling an MCP4241 digital potentiometer
DigiPot.h@2:54e9d9ddc350, 2014-02-08 (annotated)
- 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?
User | Revision | Line number | New 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 |