#include <Wire.h>
#include <Adafruit_ADS1X15.h>              // 4 channel 12bit analog ADC i2c driver lib 

#define AnIn A0

uint32_t  StartTime = 0;
uint32_t  EndTime   = 0;
uint32_t  TmpTime   = 0;
int       TempVal   = 0;


// INITIALISE 2 ADS1015 4 CHANNEL 12 BIT ADC OBJECTS
// =====================================================================================================
Adafruit_ADS1015 adsL;                     // Left  hand breakout
Adafruit_ADS1015 adsR;                     // Right hand breakout


void setup() {

    // initialise Serial
    // -----------------  
    Serial.begin(115200); 
    delay(1000);           // short delay to allow Serial to start  


    
    // initialise the ADCs
    // -------------------   
    if (!adsL.begin(0x49)) {
        Serial.println("Failed to initialize ADS_L.");
        while (1);
      }
    if (!adsR.begin(0x48)) {
        Serial.println("Failed to initialize ADS_R.");
        while (1);
    }

    
    // 6 times with standard Analog Read
    // ---------------------------------
    StartTime = micros();
    for (int i = 0; i < 6; i++)
    {
        TempVal = analogRead(AnIn);
    }
    EndTime = micros();
    
    TmpTime = EndTime - StartTime;
    Serial.print("Time for  6 standard Analog Reads =     ");
    Serial.println(TmpTime);
    
    
    
    // 60 times with standard Analog Read
    // ----------------------------------
    StartTime = micros();
    for (int i = 0; i < 60; i++)
    {
        TempVal = analogRead(AnIn);
    }
    EndTime = micros();
    
    TmpTime = EndTime - StartTime;
    Serial.print("Time for 60 standard Analog Reads =    ");
    Serial.println(TmpTime);

     
    
    // 6 times with Analog Breakout
    // -----------------------------
    StartTime = micros();
    for (int i = 0; i < 6; i++)
    {
        TempVal = adsL.readADC_SingleEnded( 0 );
    }
    EndTime = micros();
    
    TmpTime = EndTime - StartTime;
    Serial.print("Time for  6 Analog Breakout Reads =  ");
    Serial.println(TmpTime); 
    
    
    
    // 60 times with Analog Breakout
    // -----------------------------
    StartTime = micros();
    for (int i = 0; i < 60; i++)
    {
        TempVal = adsL.readADC_SingleEnded( 0 );
    }
    EndTime = micros();
    
    TmpTime = EndTime - StartTime;
    Serial.print("Time for 60 Analog Breakout Reads = ");
    Serial.println(TmpTime); 

    
    
    
    while(1); /// Just locks things up


}

void loop() {
    // put your main code here, to run repeatedly:

}