Dual DAC library
mcp482x.h@1:277e5be610bc, 2013-12-15 (annotated)
- Committer:
- henryeherman
- Date:
- Sun Dec 15 02:42:11 2013 +0000
- Revision:
- 1:277e5be610bc
Working dual DAC library
Who changed what in which revision?
User | Revision | Line number | New 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 |