Class for using AD7730 chip
AD7730.h@0:c584a588c24f, 2011-12-16 (annotated)
- Committer:
- cfscontrols2
- Date:
- Fri Dec 16 20:31:01 2011 +0000
- Revision:
- 0:c584a588c24f
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cfscontrols2 | 0:c584a588c24f | 1 | #ifndef AD7730_H |
cfscontrols2 | 0:c584a588c24f | 2 | #define AD7730_H |
cfscontrols2 | 0:c584a588c24f | 3 | |
cfscontrols2 | 0:c584a588c24f | 4 | #include "mbed.h" |
cfscontrols2 | 0:c584a588c24f | 5 | |
cfscontrols2 | 0:c584a588c24f | 6 | class AD7730{ |
cfscontrols2 | 0:c584a588c24f | 7 | |
cfscontrols2 | 0:c584a588c24f | 8 | public: |
cfscontrols2 | 0:c584a588c24f | 9 | AD7730(PinName mosi, PinName miso, PinName sclk, PinName ready, PinName cs); |
cfscontrols2 | 0:c584a588c24f | 10 | ~AD7730(void); |
cfscontrols2 | 0:c584a588c24f | 11 | |
cfscontrols2 | 0:c584a588c24f | 12 | int readRegistry(int registry); |
cfscontrols2 | 0:c584a588c24f | 13 | int writeRegistry(int registry, int value); |
cfscontrols2 | 0:c584a588c24f | 14 | int initialize(void); |
cfscontrols2 | 0:c584a588c24f | 15 | int systemLowCal(double wgt); |
cfscontrols2 | 0:c584a588c24f | 16 | int systemHighCal(double wgt, double fullScale); |
cfscontrols2 | 0:c584a588c24f | 17 | int read(); |
cfscontrols2 | 0:c584a588c24f | 18 | int startConversion(bool wait); |
cfscontrols2 | 0:c584a588c24f | 19 | void setFilter(int SF, bool chop, int filter2); |
cfscontrols2 | 0:c584a588c24f | 20 | void setFilterSF(int SF); |
cfscontrols2 | 0:c584a588c24f | 21 | void setFilterMode(int mode); |
cfscontrols2 | 0:c584a588c24f | 22 | void setFilterChop(int enabled); |
cfscontrols2 | 0:c584a588c24f | 23 | void reset(bool fullReset); |
cfscontrols2 | 0:c584a588c24f | 24 | int adjustDAC(int direction); |
cfscontrols2 | 0:c584a588c24f | 25 | void start(void); |
cfscontrols2 | 0:c584a588c24f | 26 | void stop(void); |
cfscontrols2 | 0:c584a588c24f | 27 | bool isReady(void); |
cfscontrols2 | 0:c584a588c24f | 28 | double getHz(void); |
cfscontrols2 | 0:c584a588c24f | 29 | |
cfscontrols2 | 0:c584a588c24f | 30 | |
cfscontrols2 | 0:c584a588c24f | 31 | private: |
cfscontrols2 | 0:c584a588c24f | 32 | |
cfscontrols2 | 0:c584a588c24f | 33 | SPI _spi; |
cfscontrols2 | 0:c584a588c24f | 34 | DigitalOut _cs; |
cfscontrols2 | 0:c584a588c24f | 35 | DigitalIn _readyDig; |
cfscontrols2 | 0:c584a588c24f | 36 | DigitalOut _LED3; |
cfscontrols2 | 0:c584a588c24f | 37 | InterruptIn *_interruptReady; |
cfscontrols2 | 0:c584a588c24f | 38 | PinName _readyPin; |
cfscontrols2 | 0:c584a588c24f | 39 | double _fullScaleWeight; |
cfscontrols2 | 0:c584a588c24f | 40 | double _minWeight; |
cfscontrols2 | 0:c584a588c24f | 41 | double _maxWeight; |
cfscontrols2 | 0:c584a588c24f | 42 | int _readBuffer[100]; |
cfscontrols2 | 0:c584a588c24f | 43 | int _bufferCount; |
cfscontrols2 | 0:c584a588c24f | 44 | int _lastValue; |
cfscontrols2 | 0:c584a588c24f | 45 | bool _continous; |
cfscontrols2 | 0:c584a588c24f | 46 | int _frequency; |
cfscontrols2 | 0:c584a588c24f | 47 | Timer _tmr; |
cfscontrols2 | 0:c584a588c24f | 48 | |
cfscontrols2 | 0:c584a588c24f | 49 | //Registry value constants |
cfscontrols2 | 0:c584a588c24f | 50 | static const int STATUS_REG = 0; |
cfscontrols2 | 0:c584a588c24f | 51 | static const int DATA_REG = 1; |
cfscontrols2 | 0:c584a588c24f | 52 | static const int MODE_REG = 2; |
cfscontrols2 | 0:c584a588c24f | 53 | static const int FILTER_REG = 3; |
cfscontrols2 | 0:c584a588c24f | 54 | static const int DAC_REG = 4; |
cfscontrols2 | 0:c584a588c24f | 55 | static const int OFFSET_REG = 5; |
cfscontrols2 | 0:c584a588c24f | 56 | static const int GAIN_REG = 6; |
cfscontrols2 | 0:c584a588c24f | 57 | static const int TEST_REG = 7; |
cfscontrols2 | 0:c584a588c24f | 58 | |
cfscontrols2 | 0:c584a588c24f | 59 | //define empty spi command |
cfscontrols2 | 0:c584a588c24f | 60 | static const int EMPTY_SPI = 0xFF; |
cfscontrols2 | 0:c584a588c24f | 61 | |
cfscontrols2 | 0:c584a588c24f | 62 | //internal registries |
cfscontrols2 | 0:c584a588c24f | 63 | int _mode; |
cfscontrols2 | 0:c584a588c24f | 64 | int _filter; |
cfscontrols2 | 0:c584a588c24f | 65 | int _dac; |
cfscontrols2 | 0:c584a588c24f | 66 | int _offset; |
cfscontrols2 | 0:c584a588c24f | 67 | int _gain; |
cfscontrols2 | 0:c584a588c24f | 68 | |
cfscontrols2 | 0:c584a588c24f | 69 | |
cfscontrols2 | 0:c584a588c24f | 70 | //timing variables |
cfscontrols2 | 0:c584a588c24f | 71 | Timer _exeTmr; |
cfscontrols2 | 0:c584a588c24f | 72 | int _exeTime; |
cfscontrols2 | 0:c584a588c24f | 73 | |
cfscontrols2 | 0:c584a588c24f | 74 | //error variables |
cfscontrols2 | 0:c584a588c24f | 75 | int _exeError; |
cfscontrols2 | 0:c584a588c24f | 76 | |
cfscontrols2 | 0:c584a588c24f | 77 | //private functions |
cfscontrols2 | 0:c584a588c24f | 78 | int internalZeroCal(void); |
cfscontrols2 | 0:c584a588c24f | 79 | int internalFullCal(void); |
cfscontrols2 | 0:c584a588c24f | 80 | void interruptRead(void); |
cfscontrols2 | 0:c584a588c24f | 81 | |
cfscontrols2 | 0:c584a588c24f | 82 | |
cfscontrols2 | 0:c584a588c24f | 83 | }; |
cfscontrols2 | 0:c584a588c24f | 84 | |
cfscontrols2 | 0:c584a588c24f | 85 | #endif |