Dual ADC library

Dependents:   elixys

Committer:
henryeherman
Date:
Sun Dec 15 02:42:30 2013 +0000
Revision:
1:4e6619093761
Working Dual ADC library

Who changed what in which revision?

UserRevisionLine numberNew 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