位置情報を知るための電圧値を表示させる
Dependencies: mbed
adc.cpp@2:d665c2b3e24f, 2020-03-14 (annotated)
- Committer:
- sayan2
- Date:
- Sat Mar 14 15:59:03 2020 +0000
- Revision:
- 2:d665c2b3e24f
- Parent:
- 1:c3989f45366c
output Average of V
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sayan2 | 0:aaea4a22c294 | 1 | #include "mbed.h" |
sayan2 | 0:aaea4a22c294 | 2 | |
sayan2 | 0:aaea4a22c294 | 3 | SPI mySPI(D11, D12, A4); // mosi, miso, sclk |
sayan2 | 0:aaea4a22c294 | 4 | DigitalOut cs(D10); |
sayan2 | 0:aaea4a22c294 | 5 | Serial pc(USBTX, USBRX); // tx, rx |
sayan2 | 2:d665c2b3e24f | 6 | double Vref = 5.0 ; |
sayan2 | 0:aaea4a22c294 | 7 | |
sayan2 | 0:aaea4a22c294 | 8 | int main(){ |
sayan2 | 2:d665c2b3e24f | 9 | cs=1; |
sayan2 | 2:d665c2b3e24f | 10 | mySPI.format(8,0); //Setup the spi for 10 bit data, spi mode 0 |
sayan2 | 2:d665c2b3e24f | 11 | mySPI.frequency(1000000); // second edge capture, with a 1MHz clock rate |
sayan2 | 2:d665c2b3e24f | 12 | |
sayan2 | 2:d665c2b3e24f | 13 | int n=20; //size of "n" TBD |
sayan2 | 2:d665c2b3e24f | 14 | int i; |
sayan2 | 2:d665c2b3e24f | 15 | double sum_volts; |
sayan2 | 2:d665c2b3e24f | 16 | |
sayan2 | 0:aaea4a22c294 | 17 | while (1){ |
sayan2 | 2:d665c2b3e24f | 18 | for(i=0;i<n;i++){ |
sayan2 | 2:d665c2b3e24f | 19 | cs=0; |
sayan2 | 1:c3989f45366c | 20 | |
sayan2 | 2:d665c2b3e24f | 21 | int highByte = mySPI.write(0b01101000); //Send the command to recieve the slave data |
sayan2 | 2:d665c2b3e24f | 22 | //pc.printf("highByte: %d ",highByte); |
sayan2 | 2:d665c2b3e24f | 23 | |
sayan2 | 2:d665c2b3e24f | 24 | int lowByte = mySPI.write(0xFF); // send dummy byte to receive the slave data |
sayan2 | 2:d665c2b3e24f | 25 | //pc.printf("lowByte: %d ",lowByte); |
sayan2 | 1:c3989f45366c | 26 | |
sayan2 | 2:d665c2b3e24f | 27 | int wasteByte = mySPI.write(0x00); |
sayan2 | 1:c3989f45366c | 28 | |
sayan2 | 2:d665c2b3e24f | 29 | cs=1; |
sayan2 | 0:aaea4a22c294 | 30 | |
sayan2 | 2:d665c2b3e24f | 31 | int dataCh0 = ((highByte << 8) + lowByte) & 0x03FF; |
sayan2 | 2:d665c2b3e24f | 32 | double volts = dataCh0*Vref / 1024; |
sayan2 | 2:d665c2b3e24f | 33 | |
sayan2 | 2:d665c2b3e24f | 34 | sum_volts = sum_volts + volts; |
sayan2 | 0:aaea4a22c294 | 35 | } |
sayan2 | 2:d665c2b3e24f | 36 | |
sayan2 | 2:d665c2b3e24f | 37 | double ave_volts = sum_volts / n ; //get the average to reduce the error range |
sayan2 | 2:d665c2b3e24f | 38 | pc.printf("CH0 %f V\n",ave_volts); |
sayan2 | 2:d665c2b3e24f | 39 | |
sayan2 | 2:d665c2b3e24f | 40 | sum_volts = 0.0; //initialize |
sayan2 | 2:d665c2b3e24f | 41 | |
sayan2 | 2:d665c2b3e24f | 42 | wait(3); //TBD |
sayan2 | 2:d665c2b3e24f | 43 | } |
sayan2 | 0:aaea4a22c294 | 44 | } |