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