EEPROMTEST

Dependencies:   ADS1015 mbed

Fork of Test_nucleo_MCUUU by BAP TUDelft

main.cpp

Committer:
MockyBirdTwo
Date:
2018-05-09
Revision:
8:2875bb7a4e67
Parent:
7:65325c237ac5
Child:
9:cc559f905411

File content as of revision 8:2875bb7a4e67:

#include "mbed.h"                                                                   // Include files and define parameters.
#include "Adafruit_ADS1015.h"
#include <vector>

I2C i2c_sensorplate_adc(PB_9, PB_8);                                                  // I2C for sensorplate.
Adafruit_ADS1115 piezo_resistive_adc1(&i2c_sensorplate_adc, 0x48);                  // i2c pins, i2c address.
Adafruit_ADS1115 piezo_resistive_adc2(&i2c_sensorplate_adc, 0x49);                  // i2c pins, i2c address.
Adafruit_ADS1115 piezo_electric_adc(&i2c_sensorplate_adc, 0x4B);                    // i2c pins, i2c address.
Serial usb_serial(SERIAL_TX, SERIAL_RX);                                            // tx, rx

int i2c__frequency = 100000;                                                              // I2C Frequency.
int baud_rate = 115200;                                                             // Baud rate.

Timer timer;

                                                                 // array to save sensor data

DigitalOut myled(LED1);

//Check whether any sensor values are zero
void checkzero (std::vector<int>& sendat, int size){ 
    for(int i=0;i<size;++i){
        if(sendat[i]!= 0)
            usb_serial.printf("Sensor %d is not zero\n", i);
        else
            usb_serial.printf("Sensor %d is zero\n", i);
    }
}

//-------------FLASH FLASH-----------------
//Only 16 bits data may be written.

int main(){
    std::vector<int> S_data(8);  
    
    i2c_sensorplate_adc.frequency(i2c__frequency);                                    // Set frequency for i2c connection to sensorplate (variable is declared in config part).
    usb_serial.baud(baud_rate);                                                     // Set serial USB connection baud rate (variable is declared in config part).

    usb_serial.printf("MCUs rule the World !\n");

    piezo_resistive_adc1.setGain(GAIN_TWOTHIRDS);                                   // Set ranges of ADC to +/-6.144V (end is marked with #):
    piezo_resistive_adc2.setGain(GAIN_TWOTHIRDS);   

    usb_serial.printf("Gains set.\n");  
    
    timer.start();
    while(1){
        while(timer.read_us() < 2000){}; timer.reset(); //Set readout frequency

        myled = !myled;
        //usb_serial.printf("Piezo electric 0_1 dif %d \n", piezo_electric_adc.readADC_Differential_0_1());            // First PE readout.
//        usb_serial.printf("Piezo electric 2_3 dif %d \n", piezo_electric_adc.readADC_Differential_2_3()); 

        for (uint8_t t=0; t<4; ++t){ //Save sensor data into array
            S_data[t] = (int16_t) piezo_resistive_adc1.readADC_SingleEnded(t);             //Put first 4 PR sensor data into first 4 S_data array
            S_data[t+4]= (int16_t) piezo_resistive_adc2.readADC_SingleEnded(t);             //Put next 4 PR sensor data into first 4 S_data array
        }
        
        //checkzero(S_data,S_data.size());
        for (uint8_t k = 0; k < 4; ++k) {
            usb_serial.printf("R %d Ar %d: %d\n", k, 1, S_data[k]);  // First 4 PR readout.
            usb_serial.printf("R %d Ar %d: %d\n", k, 2, S_data[k+4]);  // Next 4 PR readout.
        }
        
    
    }
}