record adc values and send them to another uprocessor

Dependencies:   BufferedSerial SDFileSystem mbed

Fork of SDFileSystem_HelloWorld by mbed official

Committer:
patmcna
Date:
Thu Jun 16 21:17:30 2016 +0000
Revision:
4:0e2980186bed
Parent:
1:b00f060239fe
Organized into header files to keep main clean

Who changed what in which revision?

UserRevisionLine numberNew contents of line
patmcna 4:0e2980186bed 1 #include "mbed.h"
patmcna 4:0e2980186bed 2 #include "SDFileSystem.h"
patmcna 4:0e2980186bed 3 #include "globals.h"
patmcna 4:0e2980186bed 4 #include <string>
patmcna 4:0e2980186bed 5 #include <cstring>
patmcna 4:0e2980186bed 6 #include "ReadADC.h"
patmcna 4:0e2980186bed 7 #include "serial_transfer.h"
patmcna 4:0e2980186bed 8 #include "sd_card.h"
patmcna 4:0e2980186bed 9
patmcna 4:0e2980186bed 10
patmcna 4:0e2980186bed 11 /*========================================================================================
patmcna 4:0e2980186bed 12 NOTES
patmcna 4:0e2980186bed 13 ========================================================================================
patmcna 4:0e2980186bed 14
patmcna 4:0e2980186bed 15
patmcna 4:0e2980186bed 16 6/14/2016 - Everything is working! 115200 baud with array sizes of 32 bytes seems to be
patmcna 4:0e2980186bed 17 what is working reliably.
patmcna 4:0e2980186bed 18 - Keeping array sizes at 32 seems easy to send and receive over serial. Trying
patmcna 4:0e2980186bed 19 to figure out why serial receive hangs with more than 32 bytes of data
patmcna 4:0e2980186bed 20
patmcna 4:0e2980186bed 21
patmcna 4:0e2980186bed 22 6/1/2016 - test to see if the recieve interrupt is handling the serial transfer and the
patmcna 4:0e2980186bed 23 read_line() does not need to be called
patmcna 4:0e2980186bed 24 - set up receive buffer to be stored into an array
patmcna 4:0e2980186bed 25 ... this will depend on where serial data is being received
patmcna 4:0e2980186bed 26
patmcna 4:0e2980186bed 27
patmcna 4:0e2980186bed 28 Board: STM Nucleo f303re
patmcna 4:0e2980186bed 29 Serial communciation:
patmcna 4:0e2980186bed 30 uart2 is connected to uart1 =
patmcna 4:0e2980186bed 31 PC_10 to D2, PC_11 to D8
patmcna 4:0e2980186bed 32 SPI communication to SD card:
patmcna 4:0e2980186bed 33 MOSI, MISO, SCK, CS
patmcna 4:0e2980186bed 34 ******************************************************************************************/
patmcna 4:0e2980186bed 35
patmcna 4:0e2980186bed 36
patmcna 4:0e2980186bed 37
patmcna 4:0e2980186bed 38
patmcna 4:0e2980186bed 39
patmcna 4:0e2980186bed 40
patmcna 4:0e2980186bed 41
patmcna 4:0e2980186bed 42
patmcna 4:0e2980186bed 43 /*========================================================================================
patmcna 4:0e2980186bed 44 MAIN
patmcna 4:0e2980186bed 45 ========================================================================================*/
patmcna 4:0e2980186bed 46
patmcna 4:0e2980186bed 47
patmcna 4:0e2980186bed 48 /************************************************************************
patmcna 4:0e2980186bed 49 * main handles:
patmcna 4:0e2980186bed 50 * setting up serial ports, interrupts
patmcna 4:0e2980186bed 51 * reading ADC data into char array c
patmcna 4:0e2980186bed 52 * then store it to an SD card,
patmcna 4:0e2980186bed 53 * then send it over serial
patmcna 4:0e2980186bed 54 *
patmcna 4:0e2980186bed 55 ************************************************************************/
patmcna 4:0e2980186bed 56 int main()
patmcna 4:0e2980186bed 57 {
patmcna 4:0e2980186bed 58 pc.baud(128000);
patmcna 4:0e2980186bed 59 // 6/1/2016 sped up baud rate and need to compare with output to see if still the same
patmcna 4:0e2980186bed 60 // 6/14/2016 any baud rate over 115200 hangs up the serial recieve interrupt :/
patmcna 4:0e2980186bed 61 uart1.baud(115200);
patmcna 4:0e2980186bed 62 uart2.baud(115200);
patmcna 4:0e2980186bed 63 uart1.attach(&Tx_interrupt, Serial::TxIrq); // Setup a serial interrupt function to transmit data
patmcna 4:0e2980186bed 64 uart2.attach(&Rx_interrupt, Serial::RxIrq); // Setup a serial interrupt function to receive data
patmcna 4:0e2980186bed 65
patmcna 4:0e2980186bed 66
patmcna 4:0e2980186bed 67 for (int j = 0; j < 10; j++)
patmcna 4:0e2980186bed 68 {
patmcna 4:0e2980186bed 69 pc.printf("\r\nStarting SD card and serial test.\r\n\r\n");
patmcna 4:0e2980186bed 70
patmcna 4:0e2980186bed 71 readADC();
patmcna 4:0e2980186bed 72
patmcna 4:0e2980186bed 73 writeToSdCard();
patmcna 4:0e2980186bed 74 readFromSdCard();
patmcna 4:0e2980186bed 75
patmcna 4:0e2980186bed 76 sendSdCardDataOverSerial();
patmcna 4:0e2980186bed 77 receiveSdCardDataOverSerial(); // Rx interrupt interferes with this since it reads from 2 places
patmcna 4:0e2980186bed 78
patmcna 4:0e2980186bed 79
patmcna 4:0e2980186bed 80 //debug code
patmcna 4:0e2980186bed 81 for(int i = 0; i < arrayCount; i++)
patmcna 4:0e2980186bed 82 {
patmcna 4:0e2980186bed 83 pc.printf(" %f - %f \r\n", squibCLT_array[i], squibCLT_array2[i]); //, squib_test);
patmcna 4:0e2980186bed 84 }
patmcna 4:0e2980186bed 85
patmcna 4:0e2980186bed 86 pc.printf("%s", squibCLT_array3);
patmcna 4:0e2980186bed 87 pc.printf("\r\n\r\n");
patmcna 4:0e2980186bed 88
patmcna 4:0e2980186bed 89
patmcna 4:0e2980186bed 90 pc.printf("%d %d\r\n", rxInterruptCount, sendCount);
patmcna 4:0e2980186bed 91
patmcna 4:0e2980186bed 92 pc.printf("\r\nEND\r\n");
patmcna 4:0e2980186bed 93 cleanBuffers();
patmcna 4:0e2980186bed 94 }
patmcna 4:0e2980186bed 95 }
patmcna 4:0e2980186bed 96
patmcna 4:0e2980186bed 97
patmcna 4:0e2980186bed 98