MCP3208 with SWSPI to support variable SPI bit lengths
Dependencies: MCP3208_STM32_16bit_HAX mbed
Fork of MCP3208_LPC1114 by
main.cpp@1:cf620653d56f, 2015-02-20 (annotated)
- 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?
User | Revision | Line number | New 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 |