record adc values and send them to another uprocessor
Dependencies: BufferedSerial SDFileSystem mbed
Fork of SDFileSystem_HelloWorld by
main.cpp@4:0e2980186bed, 2016-06-16 (annotated)
- 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?
User | Revision | Line number | New 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 |