Code to use read data from MCP3208 ADC via SPI and output it via serial using the LPC1114.

Dependencies:   MCP3208_Y mbed

main.cpp

Committer:
mcx
Date:
2015-02-19
Revision:
0:6c41db68c857
Child:
1:cf620653d56f

File content as of revision 0:6c41db68c857:

#include "mbed.h"
#include "mcp3208.h"
// #include "BufferedSerial.h"

// #include <string>
// using namespace std;

MCP3208 input1(dp2, dp1, dp6, dp9); //MCP3208(PinName mosi, PinName miso, PinName clk, PinName cs)
// MCP3208 input1(p5, p6, p7, p8);

Serial pc(dp16,dp15); //(USBTX, USBRX)
// Serial pc(p9,p10);

Ticker datalog;

char datastr0[5];
char datastr1[5];
char datastr2[5];
char datastr3[5];
char datastr4[5];
char datastr5[5];

// Credit: Erik Olieman
void intToString(char *buffer, int value)
{
    int temp;
    temp = value / 1000;
    buffer[0] = temp + '0';
    value = value - temp * 1000;

    temp = value / 100;
    buffer[1] = temp + '0';
    value = value - temp * 100;

    temp = value / 10;
    buffer[2] = temp + '0';
    value = value - temp * 10;

    temp = value / 1;
    buffer[3] = temp + '0';
    value = value - temp * 1;

    buffer[4] = '\0';
}

bool tickerActivated = false;

void log_data()
{
    tickerActivated = true;
}

int main()
{
    pc.baud(921600);
    pc.printf("Working!!\n\r");

    datalog.attach_us(&log_data,1000); // 1000us = 1ms

    intToString(datastr0,input1.binary(0));
    intToString(datastr1,input1.binary(1));
    intToString(datastr2,input1.binary(2));
    intToString(datastr3,input1.binary(3));
    intToString(datastr4,input1.binary(4));
    intToString(datastr5,input1.binary(5));

    while(1) {
        if(tickerActivated == true) {
            tickerActivated = false;
            pc.printf("%s,%s,%s,%s,%s,%s\n\r",datastr0,datastr1,datastr2,datastr3,datastr4,datastr5);
        }
    }
}