Class for using AD7730 chip
AD7730.h
- Committer:
- cfscontrols2
- Date:
- 2011-12-16
- Revision:
- 0:c584a588c24f
File content as of revision 0:c584a588c24f:
#ifndef AD7730_H
#define AD7730_H
#include "mbed.h"
class AD7730{
public:
AD7730(PinName mosi, PinName miso, PinName sclk, PinName ready, PinName cs);
~AD7730(void);
int readRegistry(int registry);
int writeRegistry(int registry, int value);
int initialize(void);
int systemLowCal(double wgt);
int systemHighCal(double wgt, double fullScale);
int read();
int startConversion(bool wait);
void setFilter(int SF, bool chop, int filter2);
void setFilterSF(int SF);
void setFilterMode(int mode);
void setFilterChop(int enabled);
void reset(bool fullReset);
int adjustDAC(int direction);
void start(void);
void stop(void);
bool isReady(void);
double getHz(void);
private:
SPI _spi;
DigitalOut _cs;
DigitalIn _readyDig;
DigitalOut _LED3;
InterruptIn *_interruptReady;
PinName _readyPin;
double _fullScaleWeight;
double _minWeight;
double _maxWeight;
int _readBuffer[100];
int _bufferCount;
int _lastValue;
bool _continous;
int _frequency;
Timer _tmr;
//Registry value constants
static const int STATUS_REG = 0;
static const int DATA_REG = 1;
static const int MODE_REG = 2;
static const int FILTER_REG = 3;
static const int DAC_REG = 4;
static const int OFFSET_REG = 5;
static const int GAIN_REG = 6;
static const int TEST_REG = 7;
//define empty spi command
static const int EMPTY_SPI = 0xFF;
//internal registries
int _mode;
int _filter;
int _dac;
int _offset;
int _gain;
//timing variables
Timer _exeTmr;
int _exeTime;
//error variables
int _exeError;
//private functions
int internalZeroCal(void);
int internalFullCal(void);
void interruptRead(void);
};
#endif