ECG_ADS1198

Dependencies:   ADSlib mbed SDFileSystem

This was created for an internship project at IIT hyderabad.

main.cpp

Committer:
joelbandi
Date:
2015-04-05
Revision:
2:86845af4bcac
Parent:
1:65a219536d66
Child:
3:86eef673aec5

File content as of revision 2:86845af4bcac:

#include "mbed.h"
#include "ADSlib.h"

/***********************PROTOTYPING**********************************/
DigitalOut CLKSEL(p8);
DigitalOut ADS1CS(p11);
DigitalOut ADS2CS(p12);
DigitalOut MULT_ADS(p13);
DigitalOut PWDN(p10);
DigitalOut RESETpin(p9);
DigitalOut STARTpin(p14);
DigitalIn DRDY(p15);
SPI spi(p5,p6,p7);
/********************************************************************/
signed char Input_Data_Stream[19];
int16_t Input_modified[12];

int main()       // main call
{
    /********************POWER ON SEQUENCING *****************************/
    wait_ms(500);                   // boot up time

    ADS1CS=1;                       // deselect ADS1
    spi.format(8,3);                //spi setttings
    spi.frequency(1000000);         //spi settings

    CLKSEL = 1;                     //clock signal (internal) setup Frequency = 2.048 MHz
    ADS1CS= 0;
    spi.write(W_CONFIG1);
    spi.write(0x00);
    spi.write(0x64);
    ADS1CS =1;

    PWDN = 1;
    RESETpin = 1;
    wait(1);                        //Delay for Power-On Reset and Oscillator Start-Up

    ADS1CS= 0;                      // intial reset command for device reset and register setting clean up
    spi.write(RESET);
    pause_clk(18);


    spi.write(SDATAC);              // device boots up in RDATAC mode set it in SDATAC mode
    pause_clk(4);


    spi.write(W_CONFIG3);           // internal reference stup and enable
    spi.write(0x00);
    spi.write(0xC0);

    /***************POWER ON SEQUENCING COMPLETE**************************/


    /**************CHANNEL SETTINGS***************************************/
    spi.write(W_CHnSET);
    spi.write(0x07);
    spi.write((int)ADS_Default_Channel_Settings);
    ADS1CS = 1;
    /*********************************************************************/

    /*****************************CONVERSION BEGINS**********************/
    STARTpin= 1;

    //write main superloop and rdatac mode and enable dout conversion AND SETUP FILESTORAFGE

    spi.write(RDATAC);
    wait_ms(10);
    while(DRDY) {}
    ADS1CS= 0;
    for (int i=0; i<=18; i++) {
        Input_Data_Stream[i] = spi.write(0x00);
    }
    for(int i=3; i<=17; i++) {
        int k= 0;
        int j= 4;
        Input_modified[k]=Input_Data_Stream[i]<<8 + Input_Data_Stream[j];
        j++;
        k++;
    }
    Input_modified[8]=Input_modified[7]-Input_modified[6];
    Input_modified[9]=-(Input_modified[7]+Input_modified[6]/2);
    Input_modified[10]=((2*Input_modified[6])-Input_modified[7])/2;
    Input_modified[11]=((2*Input_modified[7])-Input_modified[6])/2;
    spi.write(SDATAC);









}