Class for using AD7730 chip

Committer:
cfscontrols2
Date:
Fri Dec 16 20:31:01 2011 +0000
Revision:
0:c584a588c24f

        

Who changed what in which revision?

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