Dual DAC library

Dependents:   elixys

Committer:
henryeherman
Date:
Sun Dec 15 02:42:11 2013 +0000
Revision:
1:277e5be610bc
Working dual DAC library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
henryeherman 1:277e5be610bc 1 #include "mbed.h"
henryeherman 1:277e5be610bc 2 #include "bit.h"
henryeherman 1:277e5be610bc 3 #ifndef MCP482X_H
henryeherman 1:277e5be610bc 4 #define MCP482X_H
henryeherman 1:277e5be610bc 5
henryeherman 1:277e5be610bc 6 #define MCP482X_VREF 2048
henryeherman 1:277e5be610bc 7
henryeherman 1:277e5be610bc 8 #define DACSELBIT BIT(15)
henryeherman 1:277e5be610bc 9 #define DACUNDEF BIT(14)
henryeherman 1:277e5be610bc 10 #define GAINBIT BIT(13)
henryeherman 1:277e5be610bc 11 #define SHDNBIT BIT(12)
henryeherman 1:277e5be610bc 12
henryeherman 1:277e5be610bc 13 #define SELECTDACA(VALUE) CLEARBITS(VALUE,DACSELBIT)
henryeherman 1:277e5be610bc 14 #define SELECTDACB(VALUE) SETBITS(VALUE,DACSELBIT)
henryeherman 1:277e5be610bc 15 #define SELECT1XGAIN(VALUE) SETBITS(VALUE,GAINBIT)
henryeherman 1:277e5be610bc 16 #define SELECT2XGAIN(VALUE) CLEARBITS(VALUE,GAINBIT)
henryeherman 1:277e5be610bc 17 #define SELECTPWRON(VALUE) SETBITS(VALUE, SHDNBIT)
henryeherman 1:277e5be610bc 18 #define SELECTPWROFF(VALUE) CLEARBITS(VALUE, SHDNBIT)
henryeherman 1:277e5be610bc 19
henryeherman 1:277e5be610bc 20 // BITS 0-11 set the output voltage!!!
henryeherman 1:277e5be610bc 21
henryeherman 1:277e5be610bc 22 class MCP482X {
henryeherman 1:277e5be610bc 23 public:
henryeherman 1:277e5be610bc 24
henryeherman 1:277e5be610bc 25 /*
henryeherman 1:277e5be610bc 26 * Constructor
henryeherman 1:277e5be610bc 27 */
henryeherman 1:277e5be610bc 28 MCP482X(SPI &spi, void(*sel)(void), void(*usel)(void));
henryeherman 1:277e5be610bc 29
henryeherman 1:277e5be610bc 30 /*
henryeherman 1:277e5be610bc 31 * Destructor
henryeherman 1:277e5be610bc 32 */
henryeherman 1:277e5be610bc 33 ~MCP482X();
henryeherman 1:277e5be610bc 34
henryeherman 1:277e5be610bc 35 /*
henryeherman 1:277e5be610bc 36 * Write to DAC A
henryeherman 1:277e5be610bc 37 */
henryeherman 1:277e5be610bc 38 int writeA(int value);
henryeherman 1:277e5be610bc 39
henryeherman 1:277e5be610bc 40
henryeherman 1:277e5be610bc 41 /*
henryeherman 1:277e5be610bc 42 * Write to DAC B
henryeherman 1:277e5be610bc 43 */
henryeherman 1:277e5be610bc 44 int writeB(int value);
henryeherman 1:277e5be610bc 45
henryeherman 1:277e5be610bc 46
henryeherman 1:277e5be610bc 47 /*
henryeherman 1:277e5be610bc 48 * Set Gain for DAC A 1 or 2
henryeherman 1:277e5be610bc 49 */
henryeherman 1:277e5be610bc 50 void setGainA(int value);
henryeherman 1:277e5be610bc 51
henryeherman 1:277e5be610bc 52
henryeherman 1:277e5be610bc 53 /*
henryeherman 1:277e5be610bc 54 * Set Gain for DAC B 1 or 2
henryeherman 1:277e5be610bc 55 */
henryeherman 1:277e5be610bc 56 void setGainB(int value);
henryeherman 1:277e5be610bc 57
henryeherman 1:277e5be610bc 58 /*
henryeherman 1:277e5be610bc 59 * Shutdown DAC
henryeherman 1:277e5be610bc 60 */
henryeherman 1:277e5be610bc 61 void disable();
henryeherman 1:277e5be610bc 62
henryeherman 1:277e5be610bc 63 /*
henryeherman 1:277e5be610bc 64 * Power On DAC
henryeherman 1:277e5be610bc 65 */
henryeherman 1:277e5be610bc 66 void enable();
henryeherman 1:277e5be610bc 67
henryeherman 1:277e5be610bc 68 void select();
henryeherman 1:277e5be610bc 69
henryeherman 1:277e5be610bc 70 void deselect();
henryeherman 1:277e5be610bc 71
henryeherman 1:277e5be610bc 72 private:
henryeherman 1:277e5be610bc 73
henryeherman 1:277e5be610bc 74 void(*selectfxn)(void);
henryeherman 1:277e5be610bc 75 void(*unselectfxn)(void);
henryeherman 1:277e5be610bc 76 int gainA;
henryeherman 1:277e5be610bc 77 int gainB;
henryeherman 1:277e5be610bc 78 int valA;
henryeherman 1:277e5be610bc 79 int valB;
henryeherman 1:277e5be610bc 80 bool bshutdown;
henryeherman 1:277e5be610bc 81 SPI &_spi;
henryeherman 1:277e5be610bc 82
henryeherman 1:277e5be610bc 83 void configspi();
henryeherman 1:277e5be610bc 84 void sendValue(int value);
henryeherman 1:277e5be610bc 85 }; // end class MCP482X
henryeherman 1:277e5be610bc 86
henryeherman 1:277e5be610bc 87 #endif //MCP482X_H