Dual ADC library
mcp3202.h@1:4e6619093761, 2013-12-15 (annotated)
- Committer:
- henryeherman
- Date:
- Sun Dec 15 02:42:30 2013 +0000
- Revision:
- 1:4e6619093761
Working Dual ADC library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
henryeherman | 1:4e6619093761 | 1 | #include "mbed.h" |
henryeherman | 1:4e6619093761 | 2 | #include "bit.h" |
henryeherman | 1:4e6619093761 | 3 | #ifndef MCP3202_H |
henryeherman | 1:4e6619093761 | 4 | #define MCP3202_H |
henryeherman | 1:4e6619093761 | 5 | |
henryeherman | 1:4e6619093761 | 6 | #define MCP482X_VREF 2048 |
henryeherman | 1:4e6619093761 | 7 | |
henryeherman | 1:4e6619093761 | 8 | #define STARTBIT BIT(0) |
henryeherman | 1:4e6619093761 | 9 | #define SGL_DIFF BIT(7) |
henryeherman | 1:4e6619093761 | 10 | #define ODD_SIGN BIT(6) |
henryeherman | 1:4e6619093761 | 11 | #define MSBF BIT(5) |
henryeherman | 1:4e6619093761 | 12 | |
henryeherman | 1:4e6619093761 | 13 | #define SELECTSTART(VALUE) SETBITS(VALUE,STARTBIT) |
henryeherman | 1:4e6619093761 | 14 | #define SELECTDACB(VALUE) SETBITS(VALUE,DACSELBIT) |
henryeherman | 1:4e6619093761 | 15 | #define SELECT1XGAIN(VALUE) SETBITS(VALUE,GAINBIT) |
henryeherman | 1:4e6619093761 | 16 | #define SELECT2XGAIN(VALUE) CLEARBITS(VALUE,GAINBIT) |
henryeherman | 1:4e6619093761 | 17 | #define SELECTPWRON(VALUE) SETBITS(VALUE, SHDNBIT) |
henryeherman | 1:4e6619093761 | 18 | #define SELECTPWROFF(VALUE) CLEARBITS(VALUE, SHDNBIT) |
henryeherman | 1:4e6619093761 | 19 | |
henryeherman | 1:4e6619093761 | 20 | // BITS 0-11 set the output voltage!!! |
henryeherman | 1:4e6619093761 | 21 | |
henryeherman | 1:4e6619093761 | 22 | class MCP3202 { |
henryeherman | 1:4e6619093761 | 23 | public: |
henryeherman | 1:4e6619093761 | 24 | |
henryeherman | 1:4e6619093761 | 25 | /* |
henryeherman | 1:4e6619093761 | 26 | * Constructor |
henryeherman | 1:4e6619093761 | 27 | */ |
henryeherman | 1:4e6619093761 | 28 | MCP3202(SPI &spi, void(*sel)(void), void(*usel)(void)); |
henryeherman | 1:4e6619093761 | 29 | |
henryeherman | 1:4e6619093761 | 30 | /* |
henryeherman | 1:4e6619093761 | 31 | * Destructor |
henryeherman | 1:4e6619093761 | 32 | */ |
henryeherman | 1:4e6619093761 | 33 | ~MCP3202(); |
henryeherman | 1:4e6619093761 | 34 | |
henryeherman | 1:4e6619093761 | 35 | /* |
henryeherman | 1:4e6619093761 | 36 | * Write to DAC A |
henryeherman | 1:4e6619093761 | 37 | */ |
henryeherman | 1:4e6619093761 | 38 | int readA(); |
henryeherman | 1:4e6619093761 | 39 | |
henryeherman | 1:4e6619093761 | 40 | |
henryeherman | 1:4e6619093761 | 41 | /* |
henryeherman | 1:4e6619093761 | 42 | * Write to DAC B |
henryeherman | 1:4e6619093761 | 43 | */ |
henryeherman | 1:4e6619093761 | 44 | int readB(); |
henryeherman | 1:4e6619093761 | 45 | |
henryeherman | 1:4e6619093761 | 46 | /* |
henryeherman | 1:4e6619093761 | 47 | * Shutdown DAC |
henryeherman | 1:4e6619093761 | 48 | */ |
henryeherman | 1:4e6619093761 | 49 | void disable(); |
henryeherman | 1:4e6619093761 | 50 | |
henryeherman | 1:4e6619093761 | 51 | /* |
henryeherman | 1:4e6619093761 | 52 | * Power On DAC |
henryeherman | 1:4e6619093761 | 53 | */ |
henryeherman | 1:4e6619093761 | 54 | void enable(); |
henryeherman | 1:4e6619093761 | 55 | |
henryeherman | 1:4e6619093761 | 56 | void select(); |
henryeherman | 1:4e6619093761 | 57 | |
henryeherman | 1:4e6619093761 | 58 | void deselect(); |
henryeherman | 1:4e6619093761 | 59 | |
henryeherman | 1:4e6619093761 | 60 | private: |
henryeherman | 1:4e6619093761 | 61 | |
henryeherman | 1:4e6619093761 | 62 | void(*selectfxn)(void); |
henryeherman | 1:4e6619093761 | 63 | void(*unselectfxn)(void); |
henryeherman | 1:4e6619093761 | 64 | bool bshutdown; |
henryeherman | 1:4e6619093761 | 65 | SPI &_spi; |
henryeherman | 1:4e6619093761 | 66 | |
henryeherman | 1:4e6619093761 | 67 | void configspi(); |
henryeherman | 1:4e6619093761 | 68 | void sendValue(int value); |
henryeherman | 1:4e6619093761 | 69 | }; // end class MCP3202 |
henryeherman | 1:4e6619093761 | 70 | |
henryeherman | 1:4e6619093761 | 71 | #endif //MCP3202_H |