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");
            }
        }
    }
}