simulate data accoridng to #21

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 
00004 
00005 #define TYPE_MEASEUREMENT 0xA
00006 
00007 
00008 #define ST_TX D1
00009 #define ST_RX D0
00010 #define RTS D15
00011 
00012 
00013 
00014 DigitalOut led1(LED1);
00015 Serial pc(USBTX, USBRX, NULL, 115200); // tx, rx
00016 DigitalIn pin_rts(RTS);
00017 DigitalIn button(USER_BUTTON);
00018 Serial st_uart(ST_TX, ST_RX, NULL, 115200); // tx, rx
00019 
00020  
00021 
00022 uint8_t test_vector[10000];
00023 
00024 
00025 void uart_busy_check(void)
00026 {
00027     while (pin_rts == 0)
00028     {
00029         // do nothing
00030         led1=0;
00031     } 
00032 }
00033  
00034  
00035 void write_sample(uint16_t sample) 
00036 {
00037    led1=1;
00038    
00039    uint8_t byte_little = ((uint8_t *)&sample)[0];
00040    uint8_t byte_big = ((uint8_t *)&sample)[1];
00041  
00042    st_uart.putc(byte_little);
00043    st_uart.putc(byte_big);
00044      
00045    uart_busy_check();
00046 }
00047  
00048 int main() {
00049  
00050     led1=1;
00051     pc.printf("About to simulate data over the second uart D1 (Tx), D0 (Rx) - **Press button**... \n\r");
00052     
00053     while (!button)
00054     {
00055         
00056     }
00057     
00058     pc.printf("Button pressed! Starting...");
00059     
00060     while(1)
00061     {
00062     
00063       /* simulate data */
00064       for (uint16_t i=0; i<10; i++)
00065       {
00066         st_uart.putc(TYPE_MEASEUREMENT);
00067         st_uart.putc(0x00); /* CRC */
00068         
00069         if (i<9)
00070           st_uart.putc(i);  /* INDEX  (incrementing) */
00071         else
00072           st_uart.putc(255);  /* end of measurement 255 (0xff) */
00073           
00074         /* SIZE OF SAMPLES 5000 == 10000 bytes */
00075         uint16_t size_of_samples = 5000;
00076         uint8_t byte_little = ((uint8_t *)&size_of_samples)[0];
00077         uint8_t byte_big = ((uint8_t *)&size_of_samples)[1];
00078         st_uart.putc(byte_little);
00079         st_uart.putc(byte_big);
00080         
00081         for (int i=0; i<5000; i++)
00082         {     
00083            write_sample(i);
00084         }
00085         
00086       }
00087       
00088     }
00089 }