MCP3208 with SWSPI to support variable SPI bit lengths

Dependencies:   MCP3208_STM32_16bit_HAX mbed

Fork of MCP3208_LPC1114 by Michael Chuah

Committer:
mcx
Date:
Fri Feb 20 17:53:43 2015 +0000
Revision:
1:cf620653d56f
Parent:
0:6c41db68c857
Child:
4:1267e8fa59a3
Working at 921600bps for 8 inputs

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mcx 0:6c41db68c857 1 #include "mbed.h"
mcx 0:6c41db68c857 2 #include "mcp3208.h"
mcx 0:6c41db68c857 3
mcx 0:6c41db68c857 4 MCP3208 input1(dp2, dp1, dp6, dp9); //MCP3208(PinName mosi, PinName miso, PinName clk, PinName cs)
mcx 0:6c41db68c857 5 // MCP3208 input1(p5, p6, p7, p8);
mcx 0:6c41db68c857 6
mcx 1:cf620653d56f 7 Serial pc(dp16,dp15);
mcx 0:6c41db68c857 8 // Serial pc(p9,p10);
mcx 1:cf620653d56f 9 // Serial pc(USBTX, USBRX);
mcx 0:6c41db68c857 10
mcx 0:6c41db68c857 11 Ticker datalog;
mcx 0:6c41db68c857 12
mcx 0:6c41db68c857 13 char datastr0[5];
mcx 0:6c41db68c857 14 char datastr1[5];
mcx 0:6c41db68c857 15 char datastr2[5];
mcx 0:6c41db68c857 16 char datastr3[5];
mcx 0:6c41db68c857 17 char datastr4[5];
mcx 0:6c41db68c857 18 char datastr5[5];
mcx 0:6c41db68c857 19
mcx 0:6c41db68c857 20 // Credit: Erik Olieman
mcx 1:cf620653d56f 21 // http://developer.mbed.org/questions/5149/Serial-port-on-LPC1114-is-slow/
mcx 0:6c41db68c857 22 void intToString(char *buffer, int value)
mcx 0:6c41db68c857 23 {
mcx 0:6c41db68c857 24 int temp;
mcx 0:6c41db68c857 25 temp = value / 1000;
mcx 0:6c41db68c857 26 buffer[0] = temp + '0';
mcx 0:6c41db68c857 27 value = value - temp * 1000;
mcx 0:6c41db68c857 28
mcx 0:6c41db68c857 29 temp = value / 100;
mcx 0:6c41db68c857 30 buffer[1] = temp + '0';
mcx 0:6c41db68c857 31 value = value - temp * 100;
mcx 0:6c41db68c857 32
mcx 0:6c41db68c857 33 temp = value / 10;
mcx 0:6c41db68c857 34 buffer[2] = temp + '0';
mcx 0:6c41db68c857 35 value = value - temp * 10;
mcx 0:6c41db68c857 36
mcx 0:6c41db68c857 37 temp = value / 1;
mcx 0:6c41db68c857 38 buffer[3] = temp + '0';
mcx 0:6c41db68c857 39 value = value - temp * 1;
mcx 0:6c41db68c857 40
mcx 0:6c41db68c857 41 buffer[4] = '\0';
mcx 0:6c41db68c857 42 }
mcx 0:6c41db68c857 43
mcx 0:6c41db68c857 44 bool tickerActivated = false;
mcx 0:6c41db68c857 45
mcx 0:6c41db68c857 46 void log_data()
mcx 0:6c41db68c857 47 {
mcx 0:6c41db68c857 48 tickerActivated = true;
mcx 0:6c41db68c857 49 }
mcx 0:6c41db68c857 50
mcx 0:6c41db68c857 51 int main()
mcx 0:6c41db68c857 52 {
mcx 0:6c41db68c857 53 pc.baud(921600);
mcx 0:6c41db68c857 54 pc.printf("Working!!\n\r");
mcx 0:6c41db68c857 55
mcx 0:6c41db68c857 56 datalog.attach_us(&log_data,1000); // 1000us = 1ms
mcx 0:6c41db68c857 57
mcx 1:cf620653d56f 58 while(1) {
mcx 1:cf620653d56f 59 intToString(datastr0,input1.binary(0));
mcx 1:cf620653d56f 60 intToString(datastr1,input1.binary(1));
mcx 1:cf620653d56f 61 intToString(datastr2,input1.binary(2));
mcx 1:cf620653d56f 62 intToString(datastr3,input1.binary(3));
mcx 1:cf620653d56f 63 intToString(datastr4,input1.binary(4));
mcx 1:cf620653d56f 64 intToString(datastr5,input1.binary(5));
mcx 0:6c41db68c857 65
mcx 0:6c41db68c857 66 if(tickerActivated == true) {
mcx 0:6c41db68c857 67 tickerActivated = false;
mcx 0:6c41db68c857 68 pc.printf("%s,%s,%s,%s,%s,%s\n\r",datastr0,datastr1,datastr2,datastr3,datastr4,datastr5);
mcx 0:6c41db68c857 69 }
mcx 0:6c41db68c857 70 }
mcx 0:6c41db68c857 71 }
mcx 0:6c41db68c857 72
mcx 0:6c41db68c857 73