![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
valve measurement board
Dependencies: mbed ads1115_test SDFileSystem
Diff: main.cpp
- Revision:
- 0:cb9da8306a40
- Child:
- 1:655abe8ab309
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun Oct 18 13:51:47 2020 +0000 @@ -0,0 +1,88 @@ +#include "mbed.h" +#include "SDFileSystem.h" + +#include "Adafruit_ADS1015.h" + +#define ADS1115_ADDR 0b1001000 + +#define TEMP_LSB 0.0625f + +//Serial pc(USBTX, USBRX, 115200); + +I2C i2c(p9, p10); + +Adafruit_ADS1115 ads1115(&i2c, ADS1115_ADDR); + +SDFileSystem sd(p5, p6, p7, p8, "sd"); + +SPI TempK(p5, p6, p7); + +DigitalOut led1(LED1); + +DigitalOut ss1(p19); +DigitalOut ss2(p20); + +Timer timer; +Timer sd_timer; + +FILE *fp; + +char file_name[64]; + +int press_bit1, press_bit2; +float temp1, temp2; + +int main() +{ + timer.start(); + uint16_t data[2]; + ads1115.setGain(GAIN_TWOTHIRDS); + TempK.format(16, 0); + TempK.frequency(5000000); + + char file_name_format[] = "/sd/IZU2020_VALVE_MEASUREMENT_%d.dat"; + int file_number = 1; + while(1) { + sprintf(file_name, file_name_format, file_number); + fp = fopen(file_name, "r"); + if(fp != NULL) { + fclose(fp); + file_number++; + } else { + sprintf(file_name, file_name_format, file_number); + break; + } + } + fp = fopen(file_name, "w"); + sd_timer.start(); + + while(1) { + + press_bit1 = ads1115.readADC_SingleEnded(1); + press_bit2 = ads1115.readADC_SingleEnded(3); + + ss1 = 0; + data[0] = TempK.write(0x00); + data[1] = TempK.write(0x00); + ss1 = 1; + data[0] &= 0xfffc; + temp1 = (float)((int16_t)data[0]) * TEMP_LSB; + + ss2 = 0; + data[0] = TempK.write(0x00); + data[1] = TempK.write(0x00); + ss2 = 1; + data[0] &= 0xfffc; + temp2 = (float)((int16_t)data[0]) * TEMP_LSB; + + //pc.printf("%d\t%d\t%d\t%f\t%f\r\n", timer.read_ms(), press_bit1, press_bit2, temp1, temp2); + fprintf(fp, "%d\t%d\t%d\t%f\t%f\r\n", timer.read_ms(), press_bit1, press_bit2, temp1, temp2); + + if(sd_timer.read_ms() > 20*1000) { + if(fp) { + fclose(fp); + fp = fopen(file_name, "a"); + } + } + } +} \ No newline at end of file