![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
valve measurement board
Dependencies: mbed ads1115_test SDFileSystem
main.cpp
- Committer:
- tanahashi
- Date:
- 2020-10-18
- Revision:
- 0:cb9da8306a40
- Child:
- 1:655abe8ab309
File content as of revision 0:cb9da8306a40:
#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"); } } } }