AD7190
Dependencies: mbed
main.cpp@0:e74e2fd7a61e, 2020-08-06 (annotated)
- Committer:
- peng103617
- Date:
- Thu Aug 06 06:51:32 2020 +0000
- Revision:
- 0:e74e2fd7a61e
AD7190
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| peng103617 | 0:e74e2fd7a61e | 1 | /* -- MBED - AD7190 |
| peng103617 | 0:e74e2fd7a61e | 2 | |
| peng103617 | 0:e74e2fd7a61e | 3 | Porting by Rododo Science. .... 2019/9/13 |
| peng103617 | 0:e74e2fd7a61e | 4 | |
| peng103617 | 0:e74e2fd7a61e | 5 | -- */ |
| peng103617 | 0:e74e2fd7a61e | 6 | |
| peng103617 | 0:e74e2fd7a61e | 7 | |
| peng103617 | 0:e74e2fd7a61e | 8 | #include "mbed.h" |
| peng103617 | 0:e74e2fd7a61e | 9 | #include "AD7190.h" |
| peng103617 | 0:e74e2fd7a61e | 10 | SPI spi(D11, D12, D13); // mosi, miso, sclk |
| peng103617 | 0:e74e2fd7a61e | 11 | DigitalOut cs(D10); // Different CS operations |
| peng103617 | 0:e74e2fd7a61e | 12 | DigitalIn ad_rdy(D9); // Use of a _RDY Pin |
| peng103617 | 0:e74e2fd7a61e | 13 | |
| peng103617 | 0:e74e2fd7a61e | 14 | |
| peng103617 | 0:e74e2fd7a61e | 15 | Serial pc(USBTX, USBRX); // tx, rx |
| peng103617 | 0:e74e2fd7a61e | 16 | |
| peng103617 | 0:e74e2fd7a61e | 17 | void setup() |
| peng103617 | 0:e74e2fd7a61e | 18 | { |
| peng103617 | 0:e74e2fd7a61e | 19 | cs.write(1); |
| peng103617 | 0:e74e2fd7a61e | 20 | wait(1); |
| peng103617 | 0:e74e2fd7a61e | 21 | pc.printf("Example Start\n"); |
| peng103617 | 0:e74e2fd7a61e | 22 | cs.write(0); |
| peng103617 | 0:e74e2fd7a61e | 23 | while(AD7190_Init(800)==0){ |
| peng103617 | 0:e74e2fd7a61e | 24 | pc.printf("Can't allocate AD7190\r\n"); |
| peng103617 | 0:e74e2fd7a61e | 25 | wait(5); |
| peng103617 | 0:e74e2fd7a61e | 26 | } |
| peng103617 | 0:e74e2fd7a61e | 27 | |
| peng103617 | 0:e74e2fd7a61e | 28 | /* Calibrates channel AIN3(+) - AIN4(-). */ |
| peng103617 | 0:e74e2fd7a61e | 29 | AD7190_Calibrate(AD7190_MODE_CAL_INT_ZERO, AD7190_CH_AIN3P_AIN4M); |
| peng103617 | 0:e74e2fd7a61e | 30 | |
| peng103617 | 0:e74e2fd7a61e | 31 | } |
| peng103617 | 0:e74e2fd7a61e | 32 | |
| peng103617 | 0:e74e2fd7a61e | 33 | void loop() |
| peng103617 | 0:e74e2fd7a61e | 34 | { |
| peng103617 | 0:e74e2fd7a61e | 35 | |
| peng103617 | 0:e74e2fd7a61e | 36 | unsigned long val = AD7190_TemperatureRead(); |
| peng103617 | 0:e74e2fd7a61e | 37 | //pc.printf("Temperature = \t =%lu \r\n", val); |
| peng103617 | 0:e74e2fd7a61e | 38 | |
| peng103617 | 0:e74e2fd7a61e | 39 | AD7190_ChannelSelect(AD7190_CH_AIN1P_AIN2M); |
| peng103617 | 0:e74e2fd7a61e | 40 | /* Selects unipolar operation and ADC's input range to +-Vref/1. plesase refer AD7190_CONF_GAIN(x) */ |
| peng103617 | 0:e74e2fd7a61e | 41 | AD7190_RangeSetup(0, AD7190_CONF_GAIN_64); |
| peng103617 | 0:e74e2fd7a61e | 42 | |
| peng103617 | 0:e74e2fd7a61e | 43 | //val = AD7190_SingleConversion(); |
| peng103617 | 0:e74e2fd7a61e | 44 | //pc.printf("ADC = \t%lu \r\n", val); |
| peng103617 | 0:e74e2fd7a61e | 45 | |
| peng103617 | 0:e74e2fd7a61e | 46 | val = AD7190_ContinuousReadAvg(8); |
| peng103617 | 0:e74e2fd7a61e | 47 | //pc.printf("ADC_avg = \t%lu \r\n", val); |
| peng103617 | 0:e74e2fd7a61e | 48 | |
| peng103617 | 0:e74e2fd7a61e | 49 | double voltageAn34 = ( val * 0.00000011921 - 1 ) * 4.096 /64 ; //AIN=(輸出碼/2^23-1)*(Vref/gain) |
| peng103617 | 0:e74e2fd7a61e | 50 | |
| peng103617 | 0:e74e2fd7a61e | 51 | |
| peng103617 | 0:e74e2fd7a61e | 52 | pc.printf("%f \r\n", voltageAn34); |
| peng103617 | 0:e74e2fd7a61e | 53 | wait(0.01); |
| peng103617 | 0:e74e2fd7a61e | 54 | |
| peng103617 | 0:e74e2fd7a61e | 55 | |
| peng103617 | 0:e74e2fd7a61e | 56 | } |
| peng103617 | 0:e74e2fd7a61e | 57 | |
| peng103617 | 0:e74e2fd7a61e | 58 | |
| peng103617 | 0:e74e2fd7a61e | 59 | //---DON'T CHANGE BELOW---- |
| peng103617 | 0:e74e2fd7a61e | 60 | // MBED compensate |
| peng103617 | 0:e74e2fd7a61e | 61 | // main() runs in its own thread in the OS |
| peng103617 | 0:e74e2fd7a61e | 62 | int main() { |
| peng103617 | 0:e74e2fd7a61e | 63 | //---Enable Debug--- |
| peng103617 | 0:e74e2fd7a61e | 64 | pc.baud(115200); |
| peng103617 | 0:e74e2fd7a61e | 65 | //--Mark out to disable debug |
| peng103617 | 0:e74e2fd7a61e | 66 | setup(); |
| peng103617 | 0:e74e2fd7a61e | 67 | while (true) { |
| peng103617 | 0:e74e2fd7a61e | 68 | loop(); |
| peng103617 | 0:e74e2fd7a61e | 69 | } |
| peng103617 | 0:e74e2fd7a61e | 70 | } |